[SPRING] Spring webflux : http를 https로 리디렉션합니다.
SPRINGSpring webflux : http를 https로 리디렉션합니다.
Spring webflux에서 http-> https redirect를 어떻게 구성 할 수 있습니까? 모든 HTTP 요청을 https로 리디렉션해야합니다 (http 요청에 http http-> https가 변경된 상태에서 301 http 상태 응답이 있어야 함을 이해함). 설명서에서이 설명서에 대한 정보를 찾지 못했습니다. 이 답변을 찾았지만 바람둥이와 관련이 있습니다. 나는 그물을 가지고있다.
해결법
-
==============================
1.나는 길을 찾았고, 그것이 누군가를 돕기를 희망한다.
나는 길을 찾았고, 그것이 누군가를 돕기를 희망한다.
@Bean public WebFilter httpsRedirectFilter() { return new WebFilter() { @Override public Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain) { URI originalUri = exchange.getRequest().getURI(); //here set your condition to http->https redirect List<String> forwardedValues = exchange.getRequest().getHeaders().get("x-forwarded-proto"); if (forwardedValues != null && forwardedValues.contains("http")) { try { URI mutatedUri = new URI("https", originalUri.getUserInfo(), originalUri.getHost(), originalUri.getPort(), originalUri.getPath(), originalUri.getQuery(), originalUri.getFragment()); ServerHttpResponse response = exchange.getResponse(); response.setStatusCode(HttpStatus.MOVED_PERMANENTLY); response.getHeaders().setLocation(mutatedUri); return Mono.empty(); } catch (URISyntaxException e) { throw new IllegalStateException(e.getMessage(), e); } } return chain.filter(exchange); } }; }
-
==============================
2.나는 그것을 다음과 같이 작동하도록 만들었다. 그러나 이것이 지원되는지 의심스럽고 앞으로 문제가 발생할 수 있습니다.
나는 그것을 다음과 같이 작동하도록 만들었다. 그러나 이것이 지원되는지 의심스럽고 앞으로 문제가 발생할 수 있습니다.
@Configuration public class HttpToHttpsRedirectConfig { @PostConstruct public void startRedirectServer() { NettyReactiveWebServerFactory httpNettyReactiveWebServerFactory = new NettyReactiveWebServerFactory(8080); httpNettyReactiveWebServerFactory.getWebServer((request, response) -> { URI uri = request.getURI(); URI httpsUri; try { httpsUri = new URI("https", uri.getUserInfo(), uri.getHost(), 8443, uri.getPath(), uri.getQuery(), uri.getFragment()); } catch (URISyntaxException e) { return Mono.error(e); } response.setStatusCode(HttpStatus.MOVED_PERMANENTLY); response.getHeaders().setLocation(httpsUri); return response.setComplete(); }).start(); } }
from https://stackoverflow.com/questions/49045670/spring-webflux-redirect-http-to-https by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Autowired spring 서비스로 맞춤형 검사기 테스트 (0) | 2019.04.22 |
---|---|
[SPRING] Spring / JTA / JPA 유닛 테스트 : 롤백이 작동하지 않습니다. (0) | 2019.04.22 |
[SPRING] 외부 조건을 가진 spring eventListener (0) | 2019.04.22 |
[SPRING] java.sql.SQLException : 열을 찾을 수 없습니다. (0) | 2019.04.22 |
[SPRING] 정적 메소드와의 트랜잭션 (0) | 2019.04.22 |