[Java] Sicherheitscookie mit RestTemplate setzen


Answers

Ich habe einen Blogbeitrag verfasst, in dem erklärt wird, wie dies mit Anforderungsheadern geschieht:

http://springinpractice.com/2012/04/08/sending-cookies-mit-resttemplate/

Hier ist der Code:

HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.add("Cookie", "JSESSIONID=" + session.getValue());
HttpEntity requestEntity = new HttpEntity(null, requestHeaders);
ResponseEntity rssResponse = restTemplate.exchange(
    "https://jira.example.com/sr/jira.issueviews:searchrequest-xml/18107/SearchRequest-18107.xml?tempMax=1000",
    HttpMethod.GET,
    requestEntity,
    Rss.class);
Rss rss = rssResponse.getBody();
Question

Ich versuche, einen Restful JSON-Dienst mit RestTemplate und Jackson Json Converter aufzurufen. Um den Dienst anzurufen, muss ich einen Sicherheitscookie übergeben. Ich kann dies erreichen, indem ich URLConnection benutze (Siehe Code unten)

URL url= new URL("https://XXXXXXXX");

URLConnection yc = url.openConnection();
yc.setRequestProperty("SecurityCookie", ssocookie.getValue());</code>

Was ist die Parallele dazu in RestTemplate? Hier ist ein Code-Snippet, mit dem ich einen Restful Service mit RestTemplate aufgerufen habe:

RestTemplate rest = new RestTemplate();  
InputBean input = new InputBean();  
input.setResource("SampleResource");  
HttpEntity<InputBean > entity = new HttpEntity<InputBean>(input);  
ResponseEntity<OutputBean> response1 = rest.postForEntity(
    "https://XXXXXXXXX", 
    entity, OutputBean.class);</code>

Ich kann nicht herausfinden, wie das Sicherheits-Cookie übergeben wird, während RestTemplate verwendet wird, um den Dienst aufzurufen. Jede Hilfe dabei wäre großartig.