1

这是我配置 Spring-security 的方式:

   <security:http auto-config="true">
        <security:remember-me key="123456" />   <!--  Be Aware -->
        <!-- Restrict URLs based on role -->
        <security:intercept-url pattern="/index*" access="IS_AUTHENTICATED_ANONYMOUSLY" />
        <security:intercept-url pattern="/account/*" access="IS_AUTHENTICATED_ANONYMOUSLY" />        
        <security:intercept-url pattern="/assets/**" access="IS_AUTHENTICATED_ANONYMOUSLY" />

        <security:intercept-url pattern="/**" access="ROLE_USER" />
        <!-- Override default login and logout pages -->
        <security:form-login login-page="/account/login.html" 
                             login-processing-url="/account/loginProcess" 
                             default-target-url="/home.html" 
                             authentication-failure-url="/account/login.html?login_error=1" />
        <security:logout logout-url="/account/logout" logout-success-url="/account/login.html" />
    </security:http>

我的登录页面还包括 Spring 安全性的所有必要项目(记住我的复选框j_usernamej_password)。要指出的另一件事是我登录后创建的 Spring-security cookie。但是,下次我启动浏览器时,我不会自动重定向到主页。(虽然会话存在,如果我尝试输入home.html我可以)。我想知道也许这是我应该在我的配置中暗示重定向到 home.html 的东西。但是我在互联网上找到的任何例子都提到了它。你能帮我吗?

4

2 回答 2

1

尝试default-target-url=/path/to/your/homepage在表单登录标签下设置

于 2013-03-15T19:41:14.563 回答
1

我不确定您到底期望什么,但 remember-me 过滤器不应该在成功的自动登录时执行任何重定向(基于 remember-me cookie 的身份验证)。记住我功能的全部意义在于让请求通过身份验证检查并在不中断其流程的情况下进行处理,以防记住我的 cookie 有效。

编辑: 目前尚不清楚您希望重定向发生的时间和原因。在用户以交互方式验证自己(通过填写并提交登录表单)后,他会收到一个由浏览器保存的记住我的 cookie。然后稍后(可能几天后)在随后的会话中,他浏览到您的应用程序的某个随机 URL(例如通过书签)。浏览器仍然有记住我的 cookie,所以它与请求一起发送。然后服务器端的 remember-me 过滤器处理 cookie,并在没有任何进一步交互的情况下对用户进行身份验证。现在为什么要将该请求重定向到 home.html 而不是提供用户请求的内容?

于 2013-03-15T19:34:25.313 回答