Spring Security登录成功后重定向到登陆前页面 解决方案

问题:今天拿security做权限控制的时候,出现了特别灵异的一幕,security配置类写好了,正常登录的情况下,第一次登陆,登陆成功后总会莫名其妙重定向到项目的根路径,但是确实已经登陆成功了,访问主页可以进行访问了。

问题如图所示,打码部分为项目根路径。
登陆后重定向的地址
配置类配置登陆成功后转向的是一个action,如图所示
配置类中所需重定向的地址

具体解决过程十分坎坷,省略了
重点感谢一个大佬给我提了一句,我这个有可能不是重定向到首页,而是重定向到登录前的页面了。
经检查后发现产生这个问题的原因是我项目启动默认访问路径就是

http://localhost:8888/projectName/ projectName代表项目名字 出于隐私考虑不放实际项目名

确实重定向的就是这个链接,看了一下源码发现defaultSuccessUrl里面有一个重载方法

// 第二个参数就是代表是否强制转向修改后url
public final T defaultSuccessUrl(String defaultSuccessUrl, boolean alwaysUse) {
 	SavedRequestAwareAuthenticationSuccessHandler handler = new SavedRequestAwareAuthenticationSuccessHandler();
    handler.setDefaultTargetUrl(defaultSuccessUrl);
    handler.setAlwaysUseDefaultTargetUrl(alwaysUse);
    return this.successHandler(handler);
}

解决方案:在配置类中defaultSuccessUrl中加上第二个参数 一个true即可 问题解决
如图:
解决方案

注:如果使用配置文件方式配置的话 配置always-use-default-target即可

新的一年 bug减半 耶!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值