修改 ShiroConfig.java
配置文件
- 增加 Realm 的 bean
/**
* AD认证Realm
*/
@Bean
ADRealm adRealm() {
return new ADRealm();
}
/**
* 用户表认证Realm
*/
@Bean
UserRealm userRealm() {
return new UserRealm();
}
- 增加多重认证策略 bean
/**
* 多Realm认证策略
*/
@Bean
ModularRealmAuthenticator modularRealmAuthenticator() {
ModularRealmAuthenticator modularRealmAuthenticator = new ModularRealmAuthenticator();
// 所有realm中,有一个成功则算成功
modularRealmAuthenticator.setAuthenticationStrategy(new FirstSuccessfulStrategy());
return modularRealmAuthenticator;
}
- 修改
SecurityManager
安全管理器 bean,注入策略和 realm
@Bean
SecurityManager securityManager() {
DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
// 多REALM认证策略
securityManager.setAuthenticator(modularRealmAuthenticator());
// 多REALM
List<Realm> realms = Lists.newArrayList();
realms.add(adRealm());
realms.add(userRealm());
securityManager.setRealms(realms);
// securityManager.setRealm(userRealm());
securityManager.setSessionManager(sessionManager());
return securityManager;
}