Spring Boot Shiro 多重认证

修改 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;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。