[导读]我们经常会需要把登录成功后的用户信息保存到session中,但是如果我们使用shiro做权限管理,该怎么去实现呢?
我们经常会需要把登录成功后的用户信息保存到session中,但是如果我们使用shiro做权限管理,该怎么去实现呢?其实很简单
第一步:写一个类CustomFormAuthenticationFilter继承FormAuthenticationFilter,并重写onLoginSuccess方法,以下是我的实现@Override
protectedbooleanonLoginSuccess(AuthenticationTokentoken,Subjectsubject,ServletRequestrequest,
ServletResponseresponse)throwsException{
//获取已登录的用户信息
ActiveUseractiveUser=(ActiveUser)subject.getPrincipal();
//获取session
HttpServletRequesthttpServletRequest=WebUtils.toHttp(request);
HttpSessionsession=httpServletRequest.getSession();
//把用户信息保存到session
session.setAttribute(“activeUser”,activeUser);
returnsuper.onLoginSuccess(token,subject,request,response);
}
第二步:在spring-shiro配置文件中注入该bean
这样就可以了,是不是很简单。