我有一个同时侦听HTTP和HTTPS的Spring Security版本3.2.3应用程序。我希望对HTTP端口的任何请求都重定向到HTTPS。如何仅使用Java进行配置?

Spring Security javadoc for HttpSecurity 提出以下解决方案(针对基本要求):

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

但是,这不起作用,因为HttpSecurity没有方法channelSecurity()

最佳答案

问题代码中的channelSecurity()替换requiresChannel()似乎可以提供所需的行为。然后,工作代码如下所示:

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

07-24 18:30