Spring 云网关和 CORS header
Spring Cloud Gateway and CORS header
我正在尝试 proxy-forward 使用 org.springframework.cloud.gateway.mvc.ProxyExchange
的请求。
通话正常。
在我的场景中,我喜欢将它与浏览器调用集成,但是
那里有一个 CORS-header 问题。
(1) 控制器中的源:
@RequestMapping(value = "/public**", method = RequestMethod.GET)
public ResponseEntity<byte[]> forwardHttpRequestForGet(
HttpServletRequest httpServletRequest,
@RequestParam MultiValueMap<String, String> requestParams,
@RequestHeader HttpHeaders requestHeaders,
ProxyExchange<byte[]> proxy) throws Exception {
ResponseEntity<byte[]> responseEntity = cloudGatewayService.proxyForwardToApplication(httpServletRequest, requestParams,requestHeaders, proxy);
return responseEntity;
}
(2) 使用来源 CloudGatewayService
:
public ResponseEntity<byte[]> proxyForwardToApplication(
HttpServletRequest httpServletRequest,
MultiValueMap<String, String> requestParams,
HttpHeaders requestHeaders, ProxyExchange<byte[]> proxy) throws Exception {
String authorizationHeader = httpServletRequest.getHeader(AUTHORIZATION_HEADER);
String forwardUrl = "newUrl"
return proxy.sensitive("cookie")
.headers(requestHeaders)
.uri(forwardUrl).get();
}
如何为 Spring Cloud Gateway 添加 CORS 支持?
没有什么特定于云 MVC。就算是代理,我们也得给web应用添加CORS支持。
因为它是一个 spring 引导项目,所以我在这里也添加了 spring 安全性。添加了一个可以填充 headers 的过滤器。
注意:为您的 OPTION 调用(预检)添加所需的任何内容 headers,
还支持相应的 GET、POST、DELETE 等调用。
响应headers可以添加到http响应
我正在尝试 proxy-forward 使用 org.springframework.cloud.gateway.mvc.ProxyExchange
的请求。
通话正常。
在我的场景中,我喜欢将它与浏览器调用集成,但是 那里有一个 CORS-header 问题。
(1) 控制器中的源:
@RequestMapping(value = "/public**", method = RequestMethod.GET)
public ResponseEntity<byte[]> forwardHttpRequestForGet(
HttpServletRequest httpServletRequest,
@RequestParam MultiValueMap<String, String> requestParams,
@RequestHeader HttpHeaders requestHeaders,
ProxyExchange<byte[]> proxy) throws Exception {
ResponseEntity<byte[]> responseEntity = cloudGatewayService.proxyForwardToApplication(httpServletRequest, requestParams,requestHeaders, proxy);
return responseEntity;
}
(2) 使用来源 CloudGatewayService
:
public ResponseEntity<byte[]> proxyForwardToApplication(
HttpServletRequest httpServletRequest,
MultiValueMap<String, String> requestParams,
HttpHeaders requestHeaders, ProxyExchange<byte[]> proxy) throws Exception {
String authorizationHeader = httpServletRequest.getHeader(AUTHORIZATION_HEADER);
String forwardUrl = "newUrl"
return proxy.sensitive("cookie")
.headers(requestHeaders)
.uri(forwardUrl).get();
}
如何为 Spring Cloud Gateway 添加 CORS 支持?
没有什么特定于云 MVC。就算是代理,我们也得给web应用添加CORS支持。
因为它是一个 spring 引导项目,所以我在这里也添加了 spring 安全性。添加了一个可以填充 headers 的过滤器。
注意:为您的 OPTION 调用(预检)添加所需的任何内容 headers, 还支持相应的 GET、POST、DELETE 等调用。
响应headers可以添加到http响应