我有一个简单的Spring Security(3.x)配置,要求我的应用程序中的资源子集使用HTTP BASIC auth。
<http auto-config="true" use-expressions="true">
<intercept-url pattern="/secured/**" access="hasRole('ROLE_ADMIN')" requires-channel="https" />
<http-basic />
</http>
应用程序部署在上下文根ctx
。我将模式/secured/*
映射到Spring Security过滤器链。
对资源https://server:httpsport/ctx/secured/blah
的请求正常。对https://server:httpsport/ctx/secured
的请求也是如此。但是,当我切换到不安全的时候,例如。 http://host:port/ctx/secured
似乎重定向错误,重复上下文根。在我的日志中,我可以看到对/ctx/ctx/secured/...
的请求。
有人可以说明问题是什么或我应该在哪里看?
答案 0 :(得分:0)
我遇到了同样的问题,并在此处找到答案:http://myshittycode.com/2014/06/12/spring-security-forcing-urls-to-use-https/
所以在我的情况下问题是使用非默认的HTTP和HTTPS端口。 在这种情况下,添加端口映射可以提供帮助。
<port-mappings>
<port-mapping http="{yourHttpPort}" https="{yourHttpsPort}" />
</port-mappings>