shiro登陆成功保存用户信息到session

哈哈 阅读:1011 2020-06-16 18:04:18 评论:0

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

  这样就可以了,是不是很简单。

  原创文章,转载请注明出处。

 

标签:java
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号