[SPRING] RestTemplate을 사용하여 보안 쿠키 설정
SPRINGRestTemplate을 사용하여 보안 쿠키 설정
RestTemplate 및 Jackson json 변환기를 사용하여 Restful JSON 서비스를 호출하려고합니다. 이제는 서비스를 호출하기 위해 보안 쿠키를 전달해야합니다. URLConnection을 사용하여이 작업을 수행 할 수 있습니다 (아래 코드 참조).
URL url= new URL("https://XXXXXXXX");
URLConnection yc = url.openConnection();
yc.setRequestProperty("SecurityCookie", ssocookie.getValue());</code>
이것에 대한 RestTemplate의 병렬 작업은 무엇입니까? 다음은 RestTemplate을 사용하여 Restful Service를 호출하는 데 사용 된 코드 단편입니다.
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>
RestTemplate을 사용하여 서비스를 호출하는 동안 보안 쿠키를 전달하는 방법을 알아낼 수 없습니다. 이것에 대한 도움이 될 것입니다.
해결법
-
==============================
1.RestTemplate을 사용자 지정 ClientHttpRequestFactory로 연결하여 기본 연결에 액세스하여 헤더, 속성 등을 설정할 수 있도록 RestTemplate에서 사용하는 기본 HttpURLConnection에 액세스 할 수 있습니다. ClientHttpRequestFactory는 새 연결을 만들 때 RestTemplate에서 사용됩니다.
RestTemplate을 사용자 지정 ClientHttpRequestFactory로 연결하여 기본 연결에 액세스하여 헤더, 속성 등을 설정할 수 있도록 RestTemplate에서 사용하는 기본 HttpURLConnection에 액세스 할 수 있습니다. ClientHttpRequestFactory는 새 연결을 만들 때 RestTemplate에서 사용됩니다.
특히 SimpleClientHttpRequestFactory 구현을 확장하고 prepareConnection () 메소드를 재정의 할 수 있습니다.
public class YourClientHttpRequestFactory extends SimpleClientHttpRequestFactory { @Override protected void prepareConnection(HttpURLConnection connection, String httpMethod) { connection.setRequestProperty("SecurityCookie", ssocookie.getValue()); } }
-
==============================
2.요청 헤더를 사용하여이를 수행하는 방법을 설명하는 블로그 게시물을 작성했습니다.
요청 헤더를 사용하여이를 수행하는 방법을 설명하는 블로그 게시물을 작성했습니다.
http://springinpractice.com/2012/04/08/sending-cookies-with-resttemplate/
코드는 다음과 같습니다.
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();
-
==============================
3.이것이 우리를 위해 일한 방법입니다.
이것이 우리를 위해 일한 방법입니다.
requestHeaders.add("Cookie", "JSESSIONID=" + session.getValue());
from https://stackoverflow.com/questions/5796078/setting-security-cookie-using-resttemplate by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 스프링 빈을 JSF 변환기에 삽입하는 법 [duplicate] (0) | 2019.04.06 |
---|---|
[SPRING] HSQLDB에서 스키마를 생성하는 시작 스크립트 (0) | 2019.04.06 |
[SPRING] HibernateException : 현재 스레드에 대해 트랜잭션 동기화 세션을 가져올 수 없습니다. (0) | 2019.04.05 |
[SPRING] 봄 부팅 다중 로그 파일 (0) | 2019.04.05 |
[SPRING] Spring MVC LocaleChangeInterceptor 어노테이션이 작동하지 않음 (0) | 2019.04.05 |