spring-project

RestTemplate으로 basic auth 를 통한 rest api 사용

가는가래 2020. 1. 19. 01:52

Basic auth를 인증으로 사용하고 있는 rest api에 접근 할 때는 아래와 같이 하면 된다. 

하지만 BasicAuthenticationInterceptor가 스프링 5.1.1 부터 Deprecated 되었기 때문에 지양하고

org.springframework.http.HttpHeaders#setBasicAuth 를 사용하도록 한다.

 

[AS-IS]

 

RestTemplate restTemplate = new RestTemplate();

String url = "http://domain:port/test";

restTemplate.getInterceptors().add(new BasicAuthorizationInterceptor("id", "pw"));


ResponseEntity<TestResponse> response = restTemplate.exchange(url, HttpMethod.GET, null,
TestResponse.class);

TestResponse testResponse = response.getBody();

 

[TO-BE]

 

RestTemplate restTemplate = new RestTemplate();

String url = "http://domain:port/test"; 

String username = "ip";
String password = "1234";


HttpHeaders headers = new HttpHeaders();
headers.setBasicAuth(username, password);

HttpEntity request = new HttpEntity(headers);
ResponseEntity<TestResponse> response = restTemplate.exchange(url, HttpMethod.GET, request,
TestResponse.class);

TestResponse testResponse = response.getBody();