通过共享 Redis 会话连接的两个 spring 应用程序的 AuthenticationSuccessEvent 侦听器
AuthenticationSuccessEvent Listener for two spring applications connected through Shared Redis session
我有两个 spring-boot 应用程序通过 Redis 共享会话..
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();
}
在安全配置中添加了以下代码
@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();
}
}
但是 application-2 中的 'InteractiveAuthenticationSuccessEvent' 不会在 application-1 上进行身份验证时触发..
有人可以指导我吗?
我已经使用 Redis PubSub 来解决我的问题,方法是侦听从 Application-1 到 Application-2 的身份验证事件..
我有两个 spring-boot 应用程序通过 Redis 共享会话.. 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();
}
在安全配置中添加了以下代码
@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();
}
}
但是 application-2 中的 'InteractiveAuthenticationSuccessEvent' 不会在 application-1 上进行身份验证时触发..
有人可以指导我吗?
我已经使用 Redis PubSub 来解决我的问题,方法是侦听从 Application-1 到 Application-2 的身份验证事件..