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. docker容器呢SSH為什么連不通呢?2. 在windows下安裝docker Toolbox 啟動Docker Quickstart Terminal 失敗!3. docker - 各位電腦上有多少個容器啊?容器一多,自己都搞混了,咋辦呢?4. docker網絡端口映射,沒有方便點的操作方法么?5. angular.js - react的redux和vue的vuex,angular呢6. javascript - 回調函數和普通調用函數的區別?7. eclipse - 如何解決no atk-wrapper in java.library.path8. javascript - input框相關問題9. docker start -a dockername 老是卡住,什么情況?10. docker images顯示的鏡像過多,狗眼被亮瞎了,怎么辦?
