我有两个通过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();
}
}
但是在application-1上进行身份验证时,不会触发application-2中的'InteractiveAuthenticationSuccessEvent'。
有人可以指导我吗?
答案 0 :(得分:0)
我已经使用Redis PubSub通过侦听从Application-1到Application-2的身份验证事件来解决我的问题。