springsecurity设置不同角色登录后跳转到不同页面

要在WebSecurityConfig中的configure方法中配置登录

.formLogin()
.loginPage("/login")
.failureUrl("/login?error")
.defaultSuccessUrl("/home").successHandler(new LoginSuccessHandle())
.permitAll()

重点在.successHandler

建立一个LoginSuccessHandle的类

class LoginSuccessHandle implements AuthenticationSuccessHandler {
        public void onAuthenticationSuccess(HttpServletRequest request,
                                            HttpServletResponse response, Authentication authentication) throws IOException,ServletException {

            Set<String> roles = AuthorityUtils.authorityListToSet(authentication.getAuthorities());
            String path = request.getContextPath() ;
            String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
            if (roles.contains("ROLE_ADMIN")){
                response.sendRedirect(basePath+"adminHome");
                return;
            }
            response.sendRedirect(basePath+"home");
        }

LoginSuccessHandle类中根据用户是ROLE_ADMIN还是其他角色使用response.sendRedirect跳转到了不同的页面。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值