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
中就行, 比如: