개발은 하는건가..

[Springboot] http 접속 시 https 로 자동 전환 시키기 본문

SpringBoot , Thymeleaf

[Springboot] http 접속 시 https 로 자동 전환 시키기

수동애비 2025. 6. 2. 10:21
반응형

http 로 접속 시 https 로 리다이렉트 시키기 위해 다음과 같이 webConfig 클래스를 추가 하고 bean 을 등록한다.

@Configuration
public class WebConfig {
    
    @Bean
    public TomcatServletWebServerFactory servletContainer() {
        TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() {
            @Override
            protected void postProcessContext(Context context) {
                SecurityConstraint securityConstraint = new SecurityConstraint();
                securityConstraint.setUserConstraint("CONFIDENTIAL");
                SecurityCollection collection = new SecurityCollection();
                collection.addPattern("/*");
                securityConstraint.addCollection(collection);
                context.addConstraint(securityConstraint);
            }
        };
        tomcat.addAdditionalTomcatConnectors(createHttpConnector());
        return tomcat;
    }

    private Connector createHttpConnector() {
        Connector connector = new Connector(TomcatServletWebServerFactory.DEFAULT_PROTOCOL);
        connector.setScheme("http");
        connector.setPort(80);       // http 로 받는 포트
        connector.setSecure(false);
        connector.setRedirectPort(443);   // https 로 전환시 사용하는 포트
        return connector;
    }
}

문제는 동일 포트로 접속 시 http 를 https 로 바뀌게 하는건 안되는 것이 방법을 모르겠음.

http 와  https 포트를 다르게 bind 했을 때만 동작을 함.

Comments