【发布时间】: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