Spring 弹簧靴&x2B;Mongo DB+;Shiro配置
我正在Spring boot和Mongo DB中开发一个基于web的应用程序。现在我想使用ApacheShiro进行身份验证和授权。有人能给我解释一下建立mongo db领域的过程和方法,以及在哪里提到权限用户映射吗?谢谢。GitHub上有一些MongoDB领域。我不想链接到它们,因为我还没有尝试过它们,但那将是您最好的起点。基本上您需要三个组件Spring 弹簧靴&x2B;Mongo DB+;Shiro配置,spring,mongodb,apache,spring-boot,shiro,Spring,Mongodb,Apache,Spring Boot,Shiro,我正在Spring boot和Mongo DB中开发一个基于web的应用程序。现在我想使用ApacheShiro进行身份验证和授权。有人能给我解释一下建立mongo db领域的过程和方法,以及在哪里提到权限用户映射吗?谢谢。GitHub上有一些MongoDB领域。我不想链接到它们,因为我还没有尝试过它们,但那将是您最好的起点。基本上您需要三个组件 @Component public class YourMongoConfiguration { @Bean(name = "mongoTem
@Component
public class YourMongoConfiguration {
@Bean(name = "mongoTemplate")
@DependsOn({ "lifecycleBeanPostProcessor" })
public MongoTemplate mongoTemplate() throws Exception {
MongoTemplate mt = new MongoTemplate(YOUR_CONFIGURATIOP_HERE);
return mt;
}
}
然后是MongoRealm
@Component("mongoRealm")
public class MongoRealm extends AuthorizingRealm {
private final MongoTemplate mongoTemplate;
@Autowired
public MongoRealm(MongoTemplate mongoTemplate) {
this.mongoTemplate = mongoTemplate;
HashedCredentialsMatcher credentialsMatcher = new HashedCredentialsMatcher();
credentialsMatcher.setHashAlgorithmName(Sha512Hash.ALGORITHM_NAME);
credentialsMatcher.setHashIterations(53);
setCredentialsMatcher(credentialsMatcher);
}
@Override
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
// YOUR IMPLEMENTATION
}
@Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token)
throws AuthenticationException {
// YOUR IMPLEMENTATION
}
}
最后是一个安全经理
@Component("securityManager")
public class SecurityManager extends DefaultWebSecurityManager {
@Autowired
public SecurityManager(Realm mongoRealm, SessionDAO mongoSessionDAO) {
super(mongoRealm);
setRealm(mongoRealm);
SessionManager sessionManager = new SessionManager();
setSessionManager(sessionManager);
sessionManager.setSessionDAO(mongoSessionDAO);
}
}
从现在起,任一Shiro将调用您的MongoRealm来验证登录和权限,您将能够使用以下类来隐藏您的集合
@Service
public class ONE_OF_YOUR_Services {
@Autowired
private MongoTemplate mongoTemplate;
protected List<T> getDocuments(Class<T> clazz, String collection) {
return mongoTemplate.findAll(clazz, collection);
}
}
@服务
公共一等服务{
@自动连线
私有MongoTemplate MongoTemplate;
受保护的列表getDocuments(类clazz、字符串集合){
返回mongoTemplate.findAll(clazz,collection);
}
}
我希望能有帮助。到目前为止你都试过什么?