我的需求是從資料庫讀取使用者及權限信息,以完成認證和授權。 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
中就行, 例如: