Spring 使用RestTemplate连接到Atlassian产品(汇流)

Spring 使用RestTemplate连接到Atlassian产品(汇流),spring,resttemplate,confluence,Spring,Resttemplate,Confluence,我将使用Spring RestTemplate连接到Atlassian application confluence,它可以: RestTemplate template = new RestTemplate(); HttpHeaders requestHeaders = new HttpHeaders(); requestHeaders.set("Cookie", "_ga=GA1.2.62774864.1458801518; __utma=1.6277486

我将使用Spring RestTemplate连接到Atlassian application confluence,它可以:

RestTemplate template = new RestTemplate();

    HttpHeaders requestHeaders = new HttpHeaders();
    requestHeaders.set("Cookie",
        "_ga=GA1.2.62774864.1458801518; __utma=1.62774864.1458801518.1464093373.1464682866.13; __utmz=1.1458816981.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); _ga=GA1.3.62774864.1458801518; ki_t=1461064684094%3B1461064684094%3B1461069734488%3B1%3B2; ki_r=; seraph.confluence=5865502%3Adaa119bfd220fe01ddb5ebfb63fadf2c1f1e24ed; mywork.tab.tasks=false; JSESSIONID=AD61DF5C74564DBB35DB251EC3C8D6AD.it-confl02; crowd.token_key=0BJ0f0iIyp0TfFJnPo1PyA00");
    HttpEntity<?> requestEntity = new HttpEntity(requestHeaders);
    HttpEntity<String> response = template.exchange("https://confluence.domain.net/rest/api/content/search?cql=space=KIIOCO",
        HttpMethod.GET, requestEntity, String.class);
    System.out.println(response.getBody());
RestTemplate=new RestTemplate();
HttpHeaders requestHeaders=新的HttpHeaders();
requestHeaders.set(“Cookie”,
“(u ga=GA1.2.62774864.1458801518)(u utma=1.62774864.145880158.1464093373.14646828866.13)(u utmz=1.1458816981.1.1)utmcsr=(直接)| UTMCN=(直接)| utmcmd=(无)u ga=GA1.3.62774864.1458801518;ki_t=1461064684094%3B1461061064684094%3B1461069734488%3B1%3B2;ki_r=;seraph.confluence=5865502%3adaa19bfd220fe01ddb5ebfb63fadf2c1f14ed;mywork.tab.tasks=false;JSESSIONID=ad61df5c74564db35db251ec8d6ad.it-conflue02;crowd.tokenkey=0bj0biiypof1pfy1pfya00);
HttpEntity requestEntity=新的HttpEntity(requestHeaders);
HttpEntity响应=template.exchange(“https://confluence.domain.net/rest/api/content/search?cql=space=KIIOCO",
HttpMethod.GET、requestEntity、String.class);
System.out.println(response.getBody());
使用cookie,但我将阻止使用此长cookie字符串。
是否有可能替换此cookie?

您不能将基本身份验证作为标头而不是cookie发送吗

我删除了你的cookie代码,每次都发送用户名和密码,效果很好:

    package hello;


    import org.springframework.http.HttpEntity;
    import org.springframework.http.HttpHeaders;
    import org.springframework.http.HttpMethod;
    import org.springframework.web.client.RestTemplate;

    import java.io.IOException;
    import java.util.Base64;


    public class Application {

        public static void main(String args[]) throws IOException {
            RestTemplate template = new RestTemplate();

            HttpHeaders httpHeaders = getHeaders();
            HttpEntity<?> requestEntity = new HttpEntity(httpHeaders);
            HttpEntity<String> response = template.exchange("https://confluence.domain.net/rest/api/content/search?cql=space=KIIOCO",
                    HttpMethod.GET, requestEntity, String.class);
            System.out.println(response.getBody());
        }

        public static HttpHeaders getHeaders() {
            String plainCreds = "my-username:my-password";
            byte[] base64CredsBytes = Base64.getEncoder().encode(plainCreds.getBytes());
            String base64Creds = new String(base64CredsBytes);

            HttpHeaders headers = new HttpHeaders();
            headers.add("Authorization", "Basic " + base64Creds);

            return headers;
        }
    }
包你好;
导入org.springframework.http.HttpEntity;
导入org.springframework.http.HttpHeaders;
导入org.springframework.http.HttpMethod;
导入org.springframework.web.client.rest模板;
导入java.io.IOException;
导入java.util.Base64;
公共类应用程序{
公共静态void main(字符串args[])引发IOException{
RestTemplate=新的RestTemplate();
HttpHeaders HttpHeaders=getHeaders();
HttpEntity requestEntity=新的HttpEntity(httpHeaders);
HttpEntity响应=template.exchange(“https://confluence.domain.net/rest/api/content/search?cql=space=KIIOCO",
HttpMethod.GET、requestEntity、String.class);
System.out.println(response.getBody());
}
公共静态HttpHeaders getHeaders(){
String plainCreds=“我的用户名:我的密码”;
byte[]base64CredsBytes=Base64.getEncoder().encode(plainCreds.getBytes());
String base64Creds=新字符串(base64CredsBytes);
HttpHeaders=新的HttpHeaders();
标题。添加(“授权”、“基本”+base64Creds);
返回标题;
}
}