- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要审核超时 logOut 事件,我搜索了一下并找到了解决方案。但这不起作用。当用户注销或超时时,根本不会调用事件方法。
这是我的代码:ObjectLock.java:
@Component
public class ObjectLock implements ApplicationListener<SessionDestroyedEvent> {
@Override
public void onApplicationEvent(SessionDestroyedEvent event)
{
List<SecurityContext> lstSecurityContext = event.getSecurityContexts();
String userName;
for (SecurityContext securityContext : lstSecurityContext)
{
userName = (String)securityContext.getAuthentication().getPrincipal();
System.out.println("Log Out " + userName);
// ...
}
}
}
应用程序.java:
public class Application {
public static void main(String[] args) throws Exception {
TimeZone.setDefault(TimeZone.getTimeZone("Etc/UTC"));
SpringApplication application = new SpringApplication( Application.class );
application.addListeners(new ObjectLock());
ConfigurableApplicationContext context = application.run(args);
// ConfigurableApplicationContext context = SpringApplication.run(Application.class, args);
}
}
谁能告诉我这是怎么回事?谢谢。
最佳答案
添加以下代码/类,然后监听器将被调用:
import org.springframework.boot.web.servlet.ServletListenerRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.web.session.HttpSessionEventPublisher;
@Configuration
public class ApplicationConfig {
@Bean
public ServletListenerRegistrationBean<HttpSessionEventPublisher> httpSessionEventPublisher() {
return new ServletListenerRegistrationBean<HttpSessionEventPublisher>(new HttpSessionEventPublisher());
}
}
关于java - 未调用 ApplicationListener<SessionDestroyedEvent>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52838124/
我在尝试让我的 SessionDestroyedEvent 工作时遇到问题。我希望它在 session 超时时打印出来。我正在清除我的历史以强制其超时。 这是我的代码: @Service public
我需要审核超时 logOut 事件,我搜索了一下并找到了解决方案。但这不起作用。当用户注销或超时时,根本不会调用事件方法。 这是我的代码:ObjectLock.java: @Component pub
我有以下 session 销毁监听器: public class SessionStateListener implements ApplicationListener { private s
我有一个 Spring 应用程序,其中 session 存储在具有短超时 (1m) 的 redis 中。我想在我的 session 超时后调用一个函数,但是 SessionDestroyedEvent
在 Spring 中,SessionDestroyedEvent 是基于 redis notify-keyspace-events 发出的,这在 Heroku 中被禁用:https://help.he
我正在使用 Spring Session 1.0.1。我需要在用户注销时执行一些逻辑,并且需要依靠 HTTP session 失效来覆盖用户未能显式注销的情况。 标准 Spring Security
我是一名优秀的程序员,十分优秀!