重定向至isFullyAuthenticated()URL的登录名,然后再次返回

问题描述 投票:0回答:3

我正在使用Spring Security 3.1.x并尝试实现以下方案:

  • 页面通过isFullyAuthenticated()保护安全>
  • 当前用户仅通过“记住我”进行身份验证,因此未完全身份验证
  • 用户导航到此完全身份验证的页面-此页面应不允许
  • (不是)
  • 但是,用户不应获得403页面-而是应通过登录表单提示用户登录
  • 登录后,应该允许该用户进入他先前请求的页面,因为他已经是完全经过身份验证的用户
  • 我的Spring Security配置为:

<http use-expressions="true">
    <intercept-url pattern="/admin/full_auth_only.html" access="isFullyAuthenticated()" />

    <form-login login-page="/login.html" default-target-url="/authenticated.html" />
    <logout />
    <remember-me key="someAppKey" />

</http>

并且我尝试添加:

        <access-denied-handler error-page="/login.html" />

但是,现在的问题是,当访问该页面时,登录表单确实提示我,只有URL与登录不对应;而是经过完全认证的页面的URL:

http://localhost:8080/spring-security/admin/full_auth_only.html

这将中断身份验证过程,当尝试访问(无效)URL时,身份验证过程将失败:http://localhost:8080/spring-security/admin/j_spring_security_check应该是:http://localhost:8080/spring-security/j_spring_security_check

对此提供了任何帮助,我很感激-我认为用例非常普遍,因此我宁愿使用名称空间支持,也不要朝着自定义方向发展。

谢谢。欧根

我正在使用Spring Security 3.1.x并尝试实现以下方案:使用isFullyAuthenticated()保护页面,当前用户仅通过记住我进行身份验证,因此未完全通过身份验证...

spring authentication login spring-security
3个回答
0
投票

我无法复制您的Spring Security版本3.1.3.RELEASE的问题。您使用哪个版本?


0
投票

1。如果有welcome-file-list,请删除任何web.xml


0
投票

听起来好像没有设置cookie,并且发送的以下请求都被视为没有会话ID的第一个请求,因此即使您已经登录,spring每次都要求登录。

© www.soinside.com 2019 - 2024. All rights reserved.