【问题标题】:AuthenticationSuccessEvent Listener for two spring applications connected through Shared Redis session通过 Shared Redis 会话连接的两个 Spring 应用程序的 AuthenticationSuccessEvent Listener
【发布时间】:2018-08-07 12:08:47
【问题描述】:

我有两个通过 Redis 共享会话的 spring-boot 应用程序。 application-1 包含登录流程,application-2 使用在 application-1 上创建的相同会话,

现在我想在 application-2 上收听成功的身份验证。

尝试使用 InteractiveAuthenticationSuccessEvent 侦听器,如下所示..

@EventListener({AuthenticationSuccessEvent.class, InteractiveAuthenticationSuccessEvent.class})
public void processAuthenticationSuccessEvent(AbstractAuthenticationEvent  e) {
    logger.info("Autenticación successful ....");
    e.getAuthentication().getName();
} 

在securityConfig中添加以下代码

@EnableWebSecurity
@Configuration
@Component
@Order
class SecurityConfig extends WebSecurityConfigurerAdapter {

.....

@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
    auth.authenticationEventPublisher(authenticationEventPublisher());
}   

@Bean
public DefaultAuthenticationEventPublisher authenticationEventPublisher() {
    return new DefaultAuthenticationEventPublisher();
}

}

但应用程序 2 中的“InteractiveAuthenticationSuccessEvent”不会在应用程序 1 上进行身份验证时触发..

有人可以指导我吗?

【问题讨论】:

    标签: spring-boot spring-security spring-data-redis


    【解决方案1】:

    我已使用 Redis PubSub 通过侦听从 Application-1 到 Application-2 的身份验证事件来解决我的问题..

    【讨论】:

      猜你喜欢
      • 2020-02-28
      • 2016-08-01
      • 2019-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-12
      • 1970-01-01
      相关资源
      最近更新 更多