加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 防止重定向到Spring Security登录

发布时间:2020-12-14 05:43:07 所属栏目:Java 来源:网络整理
导读:我有 Spring MVC Spring Security项目. http auto-config="true" access-denied-page="/security/accessDenied" use-expressions="true" disable-url-rewriting="true"... intercept-url pattern="/dashboard/myaccount/**" access="hasAnyRole('ROLE_PERSON
我有 Spring MVC Spring Security项目.
<http auto-config="true" access-denied-page="/security/accessDenied" use-expressions="true" disable-url-rewriting="true">

... 
<intercept-url pattern="/dashboard/myaccount/**" access="hasAnyRole('ROLE_PERSON','ROLE_DEALER')"/>
...

<form-login login-page="/security/login" authentication-failure-url="/security/login?error=true"
                default-target-url="/security/success" username-parameter="email"
                password-parameter="secret"/>
<logout invalidate-session="true" logout-success-url="/index" logout-url="/security/logout"/>

如果用户进入登录页面,如果成功将被重定向到“/ security / success”,我在控制器中使用会话对象(记录userID,…等)进行更多的操作,

我的问题是当一个GUEST用户正在/ dashboard / myaccount(需要AUTH)时,他被重定向到LOGIN页面(我不想要,我更喜欢404抛出).之后,Spring Security没有重定向到/ security / success.而是重定向到/ dashboard / myaccount.

在GUEST尝试访问AUTH页面的情况下,我更愿意找到一种完全禁用此重定向到登录页面的方法.

有办法做到吗

TNX

解决方法

我们添加一个新的authenticationEntryPoint:
<http auto-config="true" access-denied-page="/security/accessDenied" use-expressions="true"
      disable-url-rewriting="true" entry-point-ref="authenticationEntryPoint"/>

<beans:bean id="authenticationEntryPoint" class="a.b.c..AuthenticationEntryPoint">
    <beans:constructor-arg name="loginUrl" value="/security/login"/>
</beans:bean>

public class AuthenticationEntryPoint extends LoginUrlAuthenticationEntryPoint {    
    public AuthenticationEntryPoint(String loginUrl)  {
        super(loginUrl);
    }

    @Override
    public void commence(HttpServletRequest request,HttpServletResponse response,AuthenticationException authException) throws IOException,ServletException {
        response.sendError(403,"Forbidden");
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读