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

Posted Zephyruss

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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>

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

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

 

以上是关于shiro登陆成功保存用户信息到session的主要内容,如果未能解决你的问题,请参考以下文章

shiro session 怎样跳出整个web框架 返回到登录页面

shiro获取登陆用户和不退出修改用户当前信息的方法

java ssh2登陆,session的问题

c#怎么把用户登陆信息保存到本地

09.session #

shiro前后台的session会共用一个,怎么分开?