我们经常会需要把登录成功后的用户信息保存到session中,但是如果我们使用shiro做权限管理,该怎么去实现呢?其实很简单
第一步:写一个类CustomFormAuthenticationFilter继承FormAuthenticationFilter,并重写onLoginSuccess方法,以下是我的实现
@Override protected boolean onLoginSuccess(AuthenticationToken token, Subject subject, ServletRequest request, ServletResponse response) throws Exception { //获取已登录的用户信息 ActiveUser activeUser = (ActiveUser) subject.getPrincipal(); //获取session HttpServletRequest httpServletRequest = WebUtils.toHttp(request); HttpSession session = httpServletRequest.getSession(); //把用户信息保存到session session.setAttribute("activeUser", activeUser); return super.onLoginSuccess(token, subject, request, response); }
第二步:在spring-shiro配置文件中注入该bean
<bean id="formAuthenticationFilter" class="com.lgf.bookstore.shiro.CustomFormAuthenticationFilter"> <property name="usernameParam" value="username" /> <property name="passwordParam" value="password" /> </bean>
这样就可以了,是不是很简单。
原创文章,转载请注明出处。
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/2146.html