我正在使用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也没有重定向。
此配置有问题吗?
答案 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>