Spring Boot Shiro 多重认证

2019-01-04  本文已影响0人  星辰大海w

修改 ShiroConfig.java 配置文件

  1. 增加 Realm 的 bean
/**
 * AD认证Realm
 */
@Bean
ADRealm adRealm() {
    return new ADRealm();
}

/**
 * 用户表认证Realm
 */
@Bean
UserRealm userRealm() {
    return new UserRealm();
}
  1. 增加多重认证策略 bean
/**
 * 多Realm认证策略
 */
@Bean
ModularRealmAuthenticator modularRealmAuthenticator() {
    ModularRealmAuthenticator modularRealmAuthenticator = new ModularRealmAuthenticator();
    // 所有realm中,有一个成功则算成功
    modularRealmAuthenticator.setAuthenticationStrategy(new FirstSuccessfulStrategy());
    return modularRealmAuthenticator;
}
  1. 修改 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;
}
上一篇下一篇

猜你喜欢

热点阅读