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

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

我有一个简单的 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>

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

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

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

最佳答案

我遇到了同样的问题并在这里找到了答案: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>

关于java - 为什么 Spring Security HTTP BASIC 重定向到错误的 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16734531/

相关文章:

spring - 无法找到 XML 模式命名空间的 Spring NamespaceHandler [http ://www. springframework.org/schema/tx]

java - 无法将 UserDetailsS​​ervice Autowiring 到 WebSecurityConfigurerAdapter

java - 线程中对象的速度不准确

java - GWT 是否与应用程序引擎的 Multi-Tenancy 支持兼容

php - PHP/MySQLi 中的大量参数绑定(bind)

asp.net - 删除 web.config 转换中的特定连接字符串

Spring-Security x509 X509PrincipalExtractor

java - 根据触摸点计算旋转时的小偏移量

java - 是否应该将 jar 文件放在 lib/ext 中而不是在 Windows XP 上使用 CLASSPATH?

web-applications - 您如何构建像 Firebase 这样的应用程序?