0
で無効に私はSessionDestroyEvent
を処理しようとすると、この例外が発生します。java.lang.IllegalStateException:getAttributeNames:セッションすでに春のセキュリティHttpSessionDestroyedEvent
public class SessionEndedListener implements ApplicationListener<SessionDestroyedEvent> {
private final ContractorService contractorService;
@Autowired
public SessionEndedListener(ContractorService contractorService) {
this.contractorService = contractorService;
}
@Override
public void onApplicationEvent(SessionDestroyedEvent sessionDestroyedEvent) {
sessionDestroyedEvent.getSecurityContexts()
}
}
SessionDestroyedEvent
セッションですでに無効ので、それが起こります。 しかし、HttpSessionEventPublisher
セッションが有効です。
java.lang.IllegalStateException: getAttributeNames: Session already invalidated
at org.apache.catalina.session.StandardSession.getAttributeNames(StandardSession.java:1199)
at org.apache.catalina.session.StandardSessionFacade.getAttributeNames(StandardSessionFacade.java:120)
at org.springframework.security.web.session.HttpSessionDestroyedEvent.getSecurityContexts(HttpSessionDestroyedEvent.java:51)
at com.ordotrans.util.listener.SessionEndedListener.onApplicationEvent(SessionEndedListener.java:29)
at com.ordotrans.util.listener.SessionEndedListener.onApplicationEvent(SessionEndedListener.java:18)
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:159)
at org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:134)
at java.lang.Thread.run(Thread.java:745)