为什么Spring Security HTTP BASIC重定向到错误的URL?

时间:2013-05-24 12:04:30

标签: java web-applications spring-security http-basic-authentication

我有一个简单的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/...的请求。

有人可以说明问题是什么或我应该在哪里看?

1 个答案:

答案 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>