刚刚在做shiro这边的测试时,出现了这么一个bug:
No realms have been configured! One or more realms must be present to execut。。。。。。。
这是我出错的代码:
@Bean("securityManager")
public SecurityManager securityManager(@Qualifier("userAuth") UserAuthRealm userAuthRealm,
@Qualifier("adminAuth")AdminAuthRealm adminAuthRealm) {
DefaultWebSecurityManager manager = new DefaultWebSecurityManager();
Collection<Realm> realmCollection = new ArrayList<>();
realmCollection.add(userAuthRealm);
realmCollection.add(adminAuthRealm);
manager.setRealms(realmCollection);
manager.setAuthenticator(createRealmAuthenticator());
return manager;
}
经过查资料,发现是位置出错了,先设置 认证器,再进行realm是设置。修改如下:
@Bean("securityManager")
public SecurityManager securityManager(@Qualifier("userAuth") UserAuthRealm userAuthRealm,
@Qualifier("adminAuth")AdminAuthRealm adminAuthRealm) {
DefaultWebSecurityManager manager = new DefaultWebSecurityManager();
Collection<Realm> realmCollection = new ArrayList<>();
//必须先设置Authenticator,再设置 realms
manager.setAuthenticator(createRealmAuthenticator());
realmCollection.add(userAuthRealm);
realmCollection.add(adminAuthRealm);
manager.setRealms(realmCollection);
return manager;
}
就行了