1 package vid.automation.test.utils;
3 import java.io.IOException;
5 import java.util.Collections;
7 import org.junit.Assert;
8 import org.onap.sdc.ci.tests.datatypes.UserCredentials;
9 import org.springframework.http.HttpEntity;
10 import org.springframework.http.HttpHeaders;
11 import org.springframework.http.HttpRequest;
12 import org.springframework.http.HttpStatus;
13 import org.springframework.http.MediaType;
14 import org.springframework.http.ResponseEntity;
15 import org.springframework.http.client.ClientHttpRequestExecution;
16 import org.springframework.http.client.ClientHttpRequestInterceptor;
17 import org.springframework.http.client.ClientHttpResponse;
18 import org.springframework.http.client.support.HttpRequestWrapper;
19 import org.springframework.web.client.RestTemplate;
21 public class CookieAndJsonHttpHeadersInterceptor implements ClientHttpRequestInterceptor {
22 private final HttpHeaders cookieAndJsonHttpHeaders;
24 public CookieAndJsonHttpHeadersInterceptor(URI uri, UserCredentials userCredentials) {
25 this.cookieAndJsonHttpHeaders = getCookieAndJsonHttpHeaders(uri, userCredentials);
29 public ClientHttpResponse intercept(HttpRequest request, byte[] body,
30 ClientHttpRequestExecution execution) throws IOException {
31 HttpRequestWrapper requestWrapper = new HttpRequestWrapper(request);
32 requestWrapper.getHeaders().putAll(cookieAndJsonHttpHeaders);
34 return execution.execute(requestWrapper, body);
37 protected HttpHeaders getCookieAndJsonHttpHeaders(URI uri, UserCredentials userCredentials) {
38 HttpHeaders loginRequestHeaders = new HttpHeaders();
39 loginRequestHeaders.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
40 HttpEntity<String> requestEntity =
41 new HttpEntity<>("loginId=" + userCredentials.getUserId() + "&password=" + userCredentials.getPassword(), loginRequestHeaders);
43 RestTemplate restTemplate = InsecureHttpsClient.newRestTemplate();
44 ResponseEntity<String> loginRes = restTemplate.postForEntity(uri.toASCIIString() + "/login_external.htm", requestEntity, String.class);
45 Assert.assertEquals("Failed to login " + describeLoginRes(uri, requestEntity, loginRes), HttpStatus.FOUND, loginRes.getStatusCode());
46 Assert.assertNull("Failed to login " + describeLoginRes(uri, requestEntity, loginRes), loginRes.getBody());
47 HttpHeaders loginResponseHeaders = loginRes.getHeaders();
48 List<String> cookie = loginResponseHeaders.get(HttpHeaders.SET_COOKIE);
50 HttpHeaders headers = new HttpHeaders();
51 headers.setContentType(MediaType.APPLICATION_JSON);
52 headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
53 headers.put(HttpHeaders.COOKIE, cookie);
57 private String describeLoginRes(URI uri, HttpEntity<String> requestEntity, ResponseEntity<String> loginRes) {
60 + uri.toASCIIString() + " POST " + requestEntity