Spring Security不会将HTTP重定向到HTTPS

时间:2017-08-04 14:12:34

标签: java spring tomcat ssl spring-security

我正在使用Spring 4和Tomcat 7实现Web应用程序。

我使用SSL证书在Tomcat上运行应用程序,它运行正常,但我想强制任何HTTP请求重定向到其HTTPS请求。

我搜索了Spring Security并添加了一些配置如下:

@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(securedEnabled = true, prePostEnabled = true, proxyTargetClass = true)
public class CoreSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .antMatcher("/**")
            .requiresChannel()
                .anyRequest().requiresSecure();
        http
            .antMatcher("/**")
            .portMapper()
                .http(80).mapsTo(443);
    }
}

但它似乎无法正常工作,Spring Security也没有重定向。

此配置有问题吗?

1 个答案:

答案 0 :(得分:1)

感谢Steps to Configure SSL on Tomcat and Setup Auto Redirect from HTTP to HTTPS,通过将重定向配置添加到Tomcat' web.xml,Tomcat会重定向。

<security-constraint>
    <web-resource-collection>
        <web-resource-name>My Application</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>