shiro cookie登錄根據角色跳轉不同頁面的解決方案


 

先拿到cookie,再根據jsessionid來獲取username,再進行角色判斷即可。

@RequestMapping("/common/checkCookie")
    public void getUserInfo(HttpServletRequest request, HttpServletResponse response){
        String sessionID = null;
        Cookie[] cookies = request.getCookies();
        if (cookies == null){
            System.out.println("cookie null");
        }else {
            for (Cookie cookie : cookies) {
                System.out.println(cookie.getName() + " " + cookie.getValue());
                if ("JSESSIONID".equals(cookie.getName())){
                    sessionID = cookie.getValue();
                }
            }
            SessionKey key = new WebSessionKey(sessionID,request,response);
            try{
                Session se = SecurityUtils.getSecurityManager().getSession(key);
                Object obj = se.getAttribute(DefaultSubjectContext.PRINCIPALS_SESSION_KEY);
                //org.apache.shiro.subject.SimplePrincipalCollection cannot be cast to com.hncxhd.bywl.entity.manual.UserInfo
                SimplePrincipalCollection coll = (SimplePrincipalCollection) obj;
                System.out.println(coll.getPrimaryPrincipal());
            }catch(Exception e){
                e.printStackTrace();
            }finally{
            }
        }

    }

 


免責聲明!

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



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