3

我有一个简单的 Spring Security (3.x) 配置,要求对我的应用程序中的资源子集进行 HTTP BASIC 身份验证。

<http auto-config="true" use-expressions="true">
    <intercept-url pattern="/secured/**" access="hasRole('ROLE_ADMIN')" requires-channel="https" />
    <http-basic />
</http>

应用程序部署在 context root ctx。我正在将模式映射/secured/*到 Spring Security 过滤器链上。

对资源的请求https://server:httpsport/ctx/secured/blah工作正常。请求也是如此https://server:httpsport/ctx/secured。但是,当我切换到不安全时,例如。http://host:port/ctx/secured似乎重定向返回错误,复制了上下文根。在我的日志中,我可以看到发出了一个请求/ctx/ctx/secured/...

有人可以建议问题是什么或我应该去哪里看吗?

4

1 回答 1

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>
于 2015-12-09T08:12:40.310 回答