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. php - mysql多表查询2. python - 斗鱼关注人数爬下来是张加载图片,如何爬取关注人数3. python - 为什么在main()函数里result 会变成那样?4. 大家都用什么工具管理mysql数据库?5. 哭辽 求大佬解答 控制器的join方法怎么转模型方法6. 就一台服务器,mysql数据库想实现自动备份,如何设计?7. 这是什么情况???8. 修改my.cnf后mysql无法运行???9. python3.x - python3.5使用pyinstaller打包报错找不到libpython3.5mu.so.1.0等文件求解?10. 怎么用php+mysql做动态数据表格 , 急!!!
