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>

  這樣就可以了,是不是很簡單。

  原創文章,轉載請注明出處。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM