Próbuję utworzyć żądanie krzyżowe za pomocą Spring's RestTemplate. Komunikacja odbywa się między dwoma aplikacjami Spring-boot, obie działające na serwerze localhost, ale innym porcie. Co mogę zrobić, to:RestTemplate nie przekazuje nagłówka Origin
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.setOrigin("http://localhost:8083");
httpHeaders.add("Authorization", token);
HttpEntity<Void> httpEntity = new HttpEntity<>(httpHeaders);
ParameterizedTypeReference<List<MyObj>> beanType = new ParameterizedTypeReference<List<MyObj>>() {};
ResponseEntity<List<MyObj>> list = restTemplate.exchange(serviceURL, HttpMethod.GET, httpEntity, beanType);
Połączenie zostanie zrealizowane, „Autoryzacja” nagłówek przechodzi po prostu w porządku, ale bez względu na to, co staram, nie ma „Origin” nagłówek na stronie odbiorczej. Po utworzeniu żądania simillar za pomocą innego narzędzia (SoapUI, wtyczki RestClient Chrome itp.) Nagłówek jest przekazywany tak, jak go dostarczam.
Aby wydrukować wszystkie nagłówki po stronie odbiorczej Używam wdrażania javax.servlet.Filter z:
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
Enumeration<String> headerNames = request.getHeaderNames();
while (headerNames.hasMoreElements()) {
String headerName = headerNames.nextElement();
log.info(headerName + ": " + request.getHeader(headerName));
}
}
Dlaczego nagłówek pochodzenie nie przeszedł podczas korzystania RestTemplate?