Перенаправить http на https в Spring Boot и Spring Security - PullRequest
0 голосов
/ 17 апреля 2020

У меня есть приложение Spring Boot с Spring Security. Я настроил порт http 8000 и порт https 8080. Я ожидаю, что когда я нажму localhost: 8000 в браузере, он будет перенаправлен на https://localhost: 8080 , но поскольку конечная точка "/" защищена, вместо этого будет перенаправлен на https://localhost: 8080 / логин . Это код:

    @Configuration
    public class SecurityConfig extends WebSecurityConfigurerAdapter {
        @Override
        public void configure(HttpSecurity http) throws Exception {
            http.authorizeRequests().anyRequest().authenticated().and().formLogin();
            http.portMapper().http(8000).mapsTo(8080);          
            http.requiresChannel().anyRequest().requiresSecure();
        }
    @Configuration
    public class HttpsConfig {
        @Bean
        public ServletWebServerFactory serverFactory() {
            TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory() {
                @Override
                protected void postProcessContext(Context context) {
                    SecurityCollection collection = new SecurityCollection();
                    collection.addPattern("/*");
                    SecurityConstraint constraint = new SecurityConstraint();
                    constraint.setUserConstraint("CONFIDENTIAL");
                    constraint.addCollection(collection);
                    context.addConstraint(constraint);
            }
        };
        factory.addAdditionalTomcatConnectors(connector());
        return factory;
    }

    private Connector connector() {
        Connector connector = new Connector();
        connector.setPort(8000);
        connector.setRedirectPort(8080);
        return connector;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...