84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
我的需求是從資料庫讀取使用者及權限信息,以完成認證和授權。 Shiro 提供了 JdbcRealm 實現,沒有 MongoDB 的 realm 實作。 請問能否:
將 MongoDB 作為 Shiro 的 realm 實作?
如果可以,具體的配置該怎麼寫? (Google 到一份具體實現程式碼,但是缺少相關設定檔)
光阴似箭催人老,日月如移越少年。
謝邀, 你只需要實現自己的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中, 例如:
Realm
RealmSecurityManager
DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager(); securityManager.setRealm(new MyRealm());
然後把這個SecurityManager设置到ShiroFilter中就行, 例如:
SecurityManager
ShiroFilter
ShiroFilterFactoryBean shiroFilterFactory = new ShiroFilterFactoryBean(); shiroFilterFactory.setSecurityManager(securityManager);
謝邀, 你只需要實現自己的Realm就行, 例如:
然後把自己的
Realm
设置到RealmSecurityManager
中, 例如:然後把這個
SecurityManager
设置到ShiroFilter
中就行, 例如: