gpt4 book ai didi

java - Spring Security 应用程序调用事件监听器

转载 作者:行者123 更新时间:2023-11-30 07:06:01 25 4
gpt4 key购买 nike

我只是通过实现 ApplicationListener 创建了一个监听器。代码如下:


public class SessionCreationEventListener implements ApplicationListener{

public void onApplicationEvent(SessionCreationEvent appEvent) {
SessionCreationEvent event = (SessionCreationEvent) appEvent;
//Object obj = null;
//UserInfo userInfo = null;
event.getSource();
}
}

但是,无法调用此 listen。我调用listener哪里错了。

最佳答案

在 web.xml 文件中添加此监听器

 <listener>
<listener-class>
org.springframework.security.web.session.HttpSessionEventPublisher
</listener-class>
</listener>

在一个简单的应用程序中,解决方案是添加一个 HttpSessionListener。因此在我的 web.xml 中:

<listener>
<listener-class>com.web.SessionCounter</listener-class>
</listener>
监听器的代码是:
public class SessionCounter implements HttpSessionListener {
private int counter = 0;

@Override
public void sessionCreated(HttpSessionEvent event) {
counter++;
System.out.println("Total sessions created " + counter);
}

// other methods
}
现在,每当 Spring 创建 session 时,我的监听器就会被激活,消息将被记录到控制台。创建的 session 总数 1这种方法的局限性在于上述监听器在 Spring 环境之外。如果我们需要在这里访问 bean,那么代码就会变得复杂。Spring Security 提供了解决该问题的方法。他们实现了一个监听器——HttpSessionEventPublisher。
public class HttpSessionEventPublisher implements HttpSessionListener {
...
}

关于java - Spring Security 应用程序调用事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26053063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com