Real Vectorism. 훨씬 더 입체적으로...
스프링 웹플럭스 기반 SSL 적용 본문
반응형
스프링 부트 기반의 SSL 적용이 웹플럭스에서는 잘 먹히지 않는 체감이 들었다.
도대체 무슨 문제가 있어서 그렇게 된 것인가.
찾아본 결과 아무래도 스프링 부트의 설정대로만 하는것은 아무래도 임베디드 톰캣을 기반으로 적용되는 설정이었던 모양이다. 확실한 것은 아닌데 웹플럭스의 기본 컨테이너인 Netty 를 위해서는 별도의 설정이 필요한 듯 하다.
// 원래 Tab 키로 들여쓰기하는데 블로그에서 쓰면 묘하게 Tab 하나가 너무 길어서 스페이스로 전환함
@Component
public class CustomWebServerFactorySslCustomizer implements WebServerFactoryCustomizer<NettyReactiveWebServerFactory> {
@Value("${server.port}") private Integer port;
@Value("${server.ssl.enabled}") private String enabled;
@Value("${server.ssl.key-store}") private String keystore;
@Value("${server.ssl.key-alias}") private String keyAlias;
@Value("${server.ssl.key-password}") private String keyPassword;
@Value("${server.ssl.key-store-type}") private String keyStoreType;
@Value("${server.ssl.key-store-password}") private String keyStorePassword;
@Override
public void customize(NettyReactiveWebServerFactory factory) {
Ssl ssl = new Ssl();
ssl.setEnabled(Boolean.parseBoolean(enabled));
ssl.setKeyStore(keystore);
ssl.setKeyAlias(keyAlias);
ssl.setKeyPassword(keyPassword);
ssl.setKeyStoreType(keyStoreType);
ssl.setKeyStorePassword(keyStorePassword);
Http2 http2 = new Http2();
http2.setEnabled(false);
factory.setSsl(ssl);
factory.setHttp2(http2);
factory.setPort(port);
}
}
솔직히 이렇게 적어놓고도 이게 맞는지는 확신이 잘 안된다.
반응형
'Java (based by Spring Boot 2)' 카테고리의 다른 글
개발단계에서 Svelte 프로젝트 자동 빌드 (0) | 2024.06.27 |
---|---|
JwtUtil (0) | 2024.03.24 |
스프링 웹플럭스에서 CSRF 토큰 때문에 페이지 요청이 모두 막히는 경우 (0) | 2023.07.26 |
나만 몰랐던 람다식 (0) | 2022.11.20 |
html과 css가 application/json 으로 반환되는 문제 2 (EnableWebflux 어노테이션 관련) (0) | 2022.09.17 |
Comments