最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Apache Shiro 使用手冊(cè)(四) Realm 實(shí)現(xiàn)

 更新時(shí)間:2014年06月09日 23:39:13   作者:  
在認(rèn)證、授權(quán)內(nèi)部實(shí)現(xiàn)機(jī)制中都有提到,最終處理都將交給Real進(jìn)行處理。因?yàn)樵赟hiro中,最終是通過Realm來獲取應(yīng)用程序中的用戶、角色及權(quán)限信息的

在認(rèn)證、授權(quán)內(nèi)部實(shí)現(xiàn)機(jī)制中都有提到,最終處理都將交給Real進(jìn)行處理。因?yàn)樵赟hiro中,最終是通過Realm來獲取應(yīng)用程序中的用戶、角色及權(quán)限信息的。通常情況下,在Realm中會(huì)直接從我們的數(shù)據(jù)源中獲取Shiro需要的驗(yàn)證信息??梢哉f,Realm是專用于安全框架的DAO.

一、認(rèn)證實(shí)現(xiàn)

正如前文所提到的,Shiro的認(rèn)證過程最終會(huì)交由Realm執(zhí)行,這時(shí)會(huì)調(diào)用Realm的getAuthenticationInfo(token)方法。
該方法主要執(zhí)行以下操作:
1、檢查提交的進(jìn)行認(rèn)證的令牌信息
2、根據(jù)令牌信息從數(shù)據(jù)源(通常為數(shù)據(jù)庫(kù))中獲取用戶信息
3、對(duì)用戶信息進(jìn)行匹配驗(yàn)證。
4、驗(yàn)證通過將返回一個(gè)封裝了用戶信息的AuthenticationInfo實(shí)例。
5、驗(yàn)證失敗則拋出AuthenticationException異常信息。

而在我們的應(yīng)用程序中要做的就是自定義一個(gè)Realm類,繼承AuthorizingRealm抽象類,重載doGetAuthenticationInfo (),重寫獲取用戶信息的方法。

復(fù)制代碼 代碼如下:

protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authcToken) throws AuthenticationException {
  UsernamePasswordToken token = (UsernamePasswordToken) authcToken;
  User user = accountManager.findUserByUserName(token.getUsername());
  if (user != null) {
   return new SimpleAuthenticationInfo(user.getUserName(), user.getPassword(), getName());
  } else {
   return null;
  }
}

二、授權(quán)實(shí)現(xiàn)

而授權(quán)實(shí)現(xiàn)則與認(rèn)證實(shí)現(xiàn)非常相似,在我們自定義的Realm中,重載doGetAuthorizationInfo()方法,重寫獲取用戶權(quán)限的方法即可。

復(fù)制代碼 代碼如下:

protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
  String userName = (String) principals.fromRealm(getName()).iterator().next();
  User user = accountManager.findUserByUserName(userName);
  if (user != null) {
   SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
   for (Group group : user.getGroupList()) {
    info.addStringPermissions(group.getPermissionList());
   }
   return info;
  } else {
   return null;
  }
}

相關(guān)文章

  • Ubuntu無(wú)網(wǎng)絡(luò)標(biāo)識(shí)的問題及解決

    Ubuntu無(wú)網(wǎng)絡(luò)標(biāo)識(shí)的問題及解決

    這篇文章主要介紹了Ubuntu無(wú)網(wǎng)絡(luò)標(biāo)識(shí)的問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • apache啟用gzip壓縮的實(shí)現(xiàn)方法

    apache啟用gzip壓縮的實(shí)現(xiàn)方法

    對(duì)于部署在Linux服務(wù)器上的PHP程序,在服務(wù)器支持的情況下,我們建議你開啟使用Gzip Web壓縮,以前腳本之家介紹了iis中的開啟方法,這篇文章主要介紹了linux中apache的開啟方法
    2013-06-06
  • Linux下的fdisk命令用法詳解

    Linux下的fdisk命令用法詳解

    這篇文章主要介紹了Linux下的fdisk用法,大家都知道fdisk功能真的很強(qiáng)大,用它可以劃分出最復(fù)雜的分區(qū),本文重點(diǎn)給大家介紹Linux下的fdisk命令用法,感興趣的朋友一起看看吧
    2018-05-05
  • 使用 libevent 和 libev 提高網(wǎng)絡(luò)應(yīng)用性能的方法

    使用 libevent 和 libev 提高網(wǎng)絡(luò)應(yīng)用性能的方法

    構(gòu)建現(xiàn)代的服務(wù)器應(yīng)用程序需要以某種方法同時(shí)接收數(shù)百、數(shù)千甚至數(shù)萬(wàn)個(gè)事件,無(wú)論它們是內(nèi)部請(qǐng)求還是網(wǎng)絡(luò)連接,都要有效地處理它們的操作
    2011-05-05
  • Apache加速模塊mod_pagespeed安裝使用詳細(xì)介紹

    Apache加速模塊mod_pagespeed安裝使用詳細(xì)介紹

    這篇文章主要介紹了Apache加速模塊mod_pagespeed安裝使用詳細(xì)介紹,需要的朋友可以參考下
    2014-03-03
  • Linux系統(tǒng)下如何實(shí)現(xiàn)修改主機(jī)名

    Linux系統(tǒng)下如何實(shí)現(xiàn)修改主機(jī)名

    這篇文章主要介紹了Linux系統(tǒng)下如何實(shí)現(xiàn)修改主機(jī)名問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Linux中搭建完整的samba服務(wù)器全攻略(centos版)

    Linux中搭建完整的samba服務(wù)器全攻略(centos版)

    smb是一個(gè)協(xié)議名,它能被用于Web連接和客戶端與服務(wù)器之間的信息溝通。這篇文章主要介紹了Linux中搭建samba服務(wù)器全攻略(centos版),需要的朋友可以參考下
    2018-11-11
  • ubuntu中編寫shell腳本開機(jī)自動(dòng)啟動(dòng)(推薦)

    ubuntu中編寫shell腳本開機(jī)自動(dòng)啟動(dòng)(推薦)

    這篇文章主要介紹了ubuntu中編寫shell腳本開機(jī)自動(dòng)啟動(dòng),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-12-12
  • 使用Apache?Hudi?加速傳統(tǒng)的批處理模式的方法

    使用Apache?Hudi?加速傳統(tǒng)的批處理模式的方法

    這篇文章主要介紹了Apache?Hudi?如何加速傳統(tǒng)的批處理模式,借助Apache Hudi,我們希望在將數(shù)據(jù)攝取到數(shù)據(jù)湖中的同時(shí),找到更好的重復(fù)數(shù)據(jù)刪除和數(shù)據(jù)版本控制優(yōu)化解決方案,需要的朋友可以參考下
    2022-04-04
  • Ubuntu 20.04雙拼輸入法的安裝步驟

    Ubuntu 20.04雙拼輸入法的安裝步驟

    這篇文章主要介紹了Ubuntu 20.04雙拼輸入法的安裝步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06

最新評(píng)論

汪清县| 三穗县| 亚东县| 梓潼县| 敖汉旗| 柳河县| 赣州市| 洛宁县| 招远市| 射阳县| 上饶县| 淅川县| 苍南县| 东山县| 海林市| 房产| 翁牛特旗| 梅州市| 平乐县| 渭源县| 新疆| 新晃| 天气| 庆城县| 左贡县| 延边| 措美县| 青岛市| 阜新| 伊川县| 江源县| 德阳市| 临江市| 易门县| 沙雅县| 潞西市| 社旗县| 静宁县| 汉寿县| 松桃| 屏南县|