日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

shiro注销其他用户_Shiro实现互斥登录,并踢出登录用户功能。

發布時間:2024/4/18 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 shiro注销其他用户_Shiro实现互斥登录,并踢出登录用户功能。 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作為一名小白,初遇到這種業務也著實頭疼了一段時間。經歷了各種查資料,總結出了一個相對簡便的方法。

首先在登陸之后使用

Collection list = sessionDAO.getActiveSessions();

方法獲取到所有登錄的用戶,循環該list,取到集合中單個的session對象

Subject s = new Subject.Builder().session(session).buildSubject();

獲取到subject, 然后s.isAuthenticated()判斷該subject是否通過驗證。

User user = (User) s.getPrincipal();

獲取到登錄用戶,然后判斷當前登錄用戶是否存在于已登錄用戶中,自己的user.getid 等于 循環出的user.getid的話說明用戶已經登錄了。

這時可以給session加個標識,標識已經踢出了。

這里是我寫的例子。

Collection list = sessionDAO.getActiveSessions();

String principal= (String)token.getPrincipal();

for (Session session: list) {

Subject s = new Subject.Builder().session(session).buildSubject();

if (s.isAuthenticated()) {

User user = (User) s.getPrincipal();

if(user!=null){

if (user.getCode().equals(principal)) {

if (!session.getId().equals(

getSession().getId())) {

//session.setAttribute("error", "賬號重復登錄!");

session.setAttribute("kicked", true);

}

}

}

}

}

至于為什么加標識而不是直接注銷之前登錄的用戶呢,因為這里注銷的話用戶那里莫名其妙的就自己退出了,用戶根本不知道發生了什么,所以最好建立個file提示一下再注銷。

Filter中首先先判斷kicked是否為true,不為true就直接放過吧

然后判斷是否是ajax請求

booleanisAjax=req.getHeader("X-Requested-With")!=null&& "XMLHttpRequest".equals(req.getHeader("X-Requested-With").toString());

如果不是ajax請求的話

String str = "

+ "window.top.location.href='"

+ url

+ "';";

session.setAttribute("kicked", false);

PrintWriter out = response.getWriter();

out.print(str);

out.flush();

out.close();

若是ajax請求,那么就要返回json數據啦

Map map = new HashMap();

map.put("login_status","300");

map.put("message","您的賬號在異地登錄,如非本人操作請盡快修改密碼!");

String resJSON = JSON.toJSONString(map);

out.print(resJSON);

前端js要配合一下

if(result.login_status == 300){

layer.msg(result.message);//您的賬號在異地登錄....

//?然后跳轉網頁

}

這樣既可實現互斥登錄功能。

一個很基礎很簡單的方法,在此寫下博客記錄下來,用于提醒自己,以及幫助以后會遇到這樣的問題的人。O(∩_∩)O~。。。

總結

以上是生活随笔為你收集整理的shiro注销其他用户_Shiro实现互斥登录,并踢出登录用户功能。的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: caoporn视频在线观看 | 国产日产精品一区二区三区 | 成人做爰www看视频软件 | 精品国产99一区二区乱码综合 | 欧美成人黄 | 91麻豆精品国产91久久久更新时间 | 制服丝袜手机在线 | 91在线视频国产 | 国产精品视频免费观看 | 日韩欧美中文字幕精品 | 成人免费毛片高清视频 | 国产超碰av | 欧美老女人性生活视频 | 麻豆亚洲av熟女国产一区二 | 人妻av无码一区二区三区 | 日韩一区视频在线 | 麻豆精品国产传媒 | 一本久道在线 | 国产精品推荐 | 人妻精品无码一区二区 | 欧美成在线视频 | 日韩毛片视频 | 精品国产传媒 | 欧美日韩一区二区电影 | 亚洲综合av一区二区 | 中文在线亚洲 | 女子spa高潮呻吟抽搐 | 人妖ts福利视频一二三区 | 成人影| 一区二区三区有限公司 | 国外精品视频 | 亚州av成人 | 麻豆国产精品 | 奇米影视狠狠 | 久久精品视频免费观看 | 福利综合网 | 不卡在线一区 | 性一交一乱一精一晶 | 亚洲精品成人无码 | 欧美成人黄色 | 婷婷色图 | 玖玖视频 | 色哟哟在线 | 欧美黄色成人 | 亚洲av无码国产精品永久一区 | 日本成人黄色片 | 可以看的黄色网 | 成人激情开心 | 少妇无套内谢免费视频 | 97一级片 | 已满十八岁免费观看 | 久久免费福利视频 | 欧美性生交大片免费看 | 国产午夜免费 | 污污的网站在线观看 | 中文字幕亚洲国产 | 国产馆av | 成人性生生活性生交3 | 久久久久九九 | 96视频在线| 99re6热在线精品视频播放 | 91免费视频网站 | 久久精品亚洲精品国产欧美 | 国产片淫乱18一级毛片动态图 | 欧美在线黄 | 香蕉视频在线播放 | 中文字幕精品一二三四五六七八 | 欧美在线一区二区三区 | 大战熟女丰满人妻av | 国产视频一区二区三区四区 | 婷婷精品 | 93久久精品日日躁夜夜躁欧美 | av黄色免费在线观看 | 日韩一级黄 | 欧美精品亚洲精品日韩精品 | 欧美日韩免费观看一区=区三区 | 古风h啪肉h文| 三级色视频 | 经典一区二区三区 | 美女精品网站 | 亚洲清纯国产 | 国产精品入口 | 国产一二三区精品 | 人妻一区二区三 | 成人观看 | 国产精品一区二区精品 | 亚洲综合视频网 | 欧美日韩精品一区二区在线观看 | 久章草影院 | 国产这里只有精品 | 日韩精品一区二区三区免费视频 | 日韩综合av| 一级全黄男女免费大片 | 亚洲黄业| 插女生下面| 亚洲熟妇av一区二区三区漫画 | 欧美国产另类 | 午夜伊人网 | 高清一区二区在线 |