久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

java - 能否將 MongoDB 作為 Shiro 的 realm 實(shí)現(xiàn)?

瀏覽:164日期:2023-12-16 13:32:47

問題描述

我的需求是從數(shù)據(jù)庫(kù)中讀取用戶及權(quán)限信息,以完成認(rèn)證和授權(quán)。Shiro 提供了 JdbcRealm 實(shí)現(xiàn),沒有 MongoDB 的 realm 實(shí)現(xiàn)。請(qǐng)問能否:

將 MongoDB 作為 Shiro 的 realm 實(shí)現(xiàn)?

如果可以,具體的配置該怎么寫?(Google 到一份具體實(shí)現(xiàn)代碼,但是缺少相關(guān)配置文件)

問題解答

回答1:

謝邀, 你只需要實(shí)現(xiàn)自己的Realm就行, 比如:

public class MyRealm extends AuthorizingRealm { // 認(rèn)證 @Override protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException { // TODO 從數(shù)據(jù)庫(kù)中獲取用戶信息, 從Mongo中查出來的 return null; } // 授權(quán) @Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { // TODO 從數(shù)據(jù)庫(kù)中獲取授權(quán)信息, 從Mongo中查出來的 return null; }}

然后把你自己的Realm設(shè)置到RealmSecurityManager中, 比如:

DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();securityManager.setRealm(new MyRealm());

然后把這個(gè)SecurityManager設(shè)置到ShiroFilter中就行, 比如:

ShiroFilterFactoryBean shiroFilterFactory = new ShiroFilterFactoryBean();shiroFilterFactory.setSecurityManager(securityManager);

標(biāo)簽: java
相關(guān)文章:
主站蜘蛛池模板: 昆明市| 商丘市| 古交市| 庆元县| 闵行区| 罗江县| 乐昌市| 台山市| 芜湖县| 龙井市| 太仓市| 商南县| 土默特左旗| 乌拉特后旗| 兴隆县| 沐川县| 晋中市| 灌阳县| 北海市| 额尔古纳市| 阳新县| 金堂县| 闽清县| 蓬莱市| 蒲城县| 辰溪县| 龙山县| 辽宁省| 通辽市| 都匀市| 泾川县| 福建省| 尤溪县| 红安县| 扎鲁特旗| 杭锦后旗| 葵青区| 青神县| 鲜城| 长阳| 双辽市|