Spring Security Https - 尝试使用https登录时出错

时间:2014-02-26 15:40:21

标签: java spring spring-mvc spring-security

当用户点击登录/注册页面(/ user / add)时,我想从http切换到https,并保持https会话直到注销。 主页不含https。 我在security.xml中的代码:

<http auto-config="true">  
    <intercept-url pattern="/home*" access="ROLE_USER" />  
    <intercept-url pattern="/user/add*" access="ROLE_USER" requires-channel="https"/> 
    <form-login login-page="/user/add" default-target-url="/" authentication-failure-url="/user/add" />

    <port-mappings>
        <port-mapping http="8080" https="8181"/>
    </port-mappings>


</http>

我正在使用Glassfish 4.0,Spring MVC和Spring Security 3.0

当我点击页面/用户/添加按钮时,我收到此错误:

ERR_TOO_MANY_REDIRECTS

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您获得了太多重​​定向,因为您将登录页面设置为“/ user / add”(当然,它不是页面 - 您应该将此地址设置为真正的登录页面)。但是,当用户到达此地址时,他被阻止,因为在您将“/ user / add *”定义为需要进行身份验证的安全资源之前的行。验证失败,然后用户被重定向到“/ user / add”,因为这被定义为'authentication-failure-url'。

这是解释。

希望有所帮助: - )

PS如果你想看一个如何做你想要的事情的例子,看看here(搜索“表格登录”)