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. javascript - sublime快鍵鍵問題2. javascript - immutable配合react提升性能?3. vue.js - Vue 如何像Angular.js watch 一樣監聽數據變化4. javascript - 移動端上不能實現拖拽布局嗎?5. 實現bing搜索工具urlAPI提交6. javascript - react native在run-android時出現這個錯誤該怎么解決?大神賜教7. javascript - 如何判斷不同兩個對象觸發同一事件?8. thinkPHP5中獲取數據庫數據后默認選中下拉框的值,傳遞到后臺消失不見。有圖有代碼,希望有人幫忙9. javascript - ios返回不執行js怎么解決?10. index.php錯誤,求指點

網公網安備