shiro登陆成功保存用户信息到session详解程序员

  我们经常会需要把登录成功后的用户信息保存到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

(0)
上一篇 2021年7月15日
下一篇 2021年7月15日

相关推荐

发表回复

登录后才能评论