java - 能否將 MongoDB 作為 Shiro 的 realm 實現?
問題描述
我的需求是從數據庫中讀取用戶及權限信息,以完成認證和授權。Shiro 提供了 JdbcRealm 實現,沒有 MongoDB 的 realm 實現。請問能否:
將 MongoDB 作為 Shiro 的 realm 實現?
如果可以,具體的配置該怎么寫?(Google 到一份具體實現代碼,但是缺少相關配置文件)
問題解答
回答1:謝邀, 你只需要實現自己的Realm就行, 比如:
public class MyRealm extends AuthorizingRealm { // 認證 @Override protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException { // TODO 從數據庫中獲取用戶信息, 從Mongo中查出來的 return null; } // 授權 @Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { // TODO 從數據庫中獲取授權信息, 從Mongo中查出來的 return null; }}
然后把你自己的Realm設置到RealmSecurityManager中, 比如:
DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();securityManager.setRealm(new MyRealm());
然后把這個SecurityManager設置到ShiroFilter中就行, 比如:
ShiroFilterFactoryBean shiroFilterFactory = new ShiroFilterFactoryBean();shiroFilterFactory.setSecurityManager(securityManager);
相關文章:
1. css3 - 這個形狀使用CSS怎么寫出來?2. 這種數據怎么合并?。?/a>3. 請教各位大佬,瀏覽器點 提交實例為什么沒有反應4. javascript - 如何使用loadash對[object,object,object]形式的數組進行比較5. mysql優化 - 關于mysql分區6. 如何分別在Windows下用Winform項模板+C#,在MacOSX下用Cocos Application項目模板+Objective-C實現一個制作游戲的空的黑窗口?7. angular.js - 百度支持_escaped_fragment_嗎?8. javascript - ionic2 input autofocus 電腦成功,iOS手機鍵盤不彈出9. nlp - python如何對一篇文章自動分段?10. nginx - 關于vue項目部署到ngnix后出現的問題
