Как перенаправить HTTP-запросы на HTTPS с помощью конфигурации Java Spring Security?

У меня есть приложение Spring Security версии 3.2.3, которое прослушивает как HTTP, так и HTTPS. Я хочу, чтобы любой запрос к HTTP-порту перенаправлялся на HTTPS. Как мне настроить это, используя только Java?

Javadoc Spring Security для HttpSecurity предлагает следующее решение (урезанное до необходимого):

public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    protected void configure(HttpSecurity http) {
        http.channelSecurity().anyRequest().requiresSecure();
    }
}

Однако это не работает, потому что HttpSecurity не имеет метода channelSecurity().


person Samuli Pahaoja    schedule 09.07.2014    source источник


Ответы (1)


Замена channelSecurity() на requiresChannel() в коде вопроса дает желаемое поведение. Тогда рабочий код выглядит следующим образом:

public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    protected void configure(HttpSecurity http) {
        http.requiresChannel().anyRequest().requiresSecure();
    }
}
person Samuli Pahaoja    schedule 09.07.2014
comment
Используя приведенное выше, я получаю сообщение об ошибке ERR_TOO_MANY_REDIRECTS. Вы сталкивались с подобной проблемой? - person ASR4; 05.02.2019
comment
следуйте этому руководству: https://www.baeldung.com/spring-channel-security-https - person Charana; 31.10.2020