Spring 不会为 AuthenticationSuccessEvent 调用安全 ApplicationListener

Spring security ApplicationListener doesn't get called for AuthenticationSuccessEvent

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

调用
@Component
public class LoginListener implements ApplicationListener<InteractiveAuthenticationSuccessEvent> {

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

我该怎么办?

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

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

我通过以下方式解决了上述问题: 删除基于 java 的初始化并通过在 web.xml.

中添加过滤器 springSecurityFilterChain 来初始化它
<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 我的 SecurityConfig class 中的任何 bean 时,我都会遇到 bean 连接异常。那个问题也解决了。