Spring Security ApplicationListener不会为AuthenticationSuccessEvent调用

时间:2018-09-22 18:01:08

标签: java spring-security spring-security-oauth2

在我的安全应用程序中,不会为AuthenticationSuccessEvent调用Spring安全ApplicationListener

@Component
public class LoginListener implements ApplicationListener<InteractiveAuthenticationSuccessEvent> {

    @Override
    public void onApplicationEvent(InteractiveAuthenticationSuccessEvent event)
    {
        log.info("Login success");
    }
}

我该怎么办?

1 个答案:

答案 0 :(得分:0)

我正在使用基于xml的mvc配置,并且正在像这样初始化security

public class SecurityWebApplicationInitializer extends AbstractSecurityWebApplicationInitializer {
    public SecurityWebApplicationInitializer() {
        super(SecurityConfig.class);
    }
}

我通过以下方法解决了上述问题: 删除基于Java的初始化,并通过在springSecurityFilterChain中添加过滤器web.xml对其进行初始化。

<filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

此外,每当我尝试@Autowire类中的任何bean时,都会出现bean接线异常。这个问题也解决了。