package gov.samhsa.consent2share.web.config.di.root; import gov.samhsa.consent2share.infrastructure.eventlistener.LoggingSessionDestroyedEventListener; import gov.samhsa.consent2share.infrastructure.eventlistener.SessionTimeoutConfigSessionCreatedEventListener; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class SessionConfig { @Value("${session_timeout_in_minutes}") private int sessionTimeoutInMins; // This bean must be in root application context so that org.springframework.security.web.session.HttpSessionEventPublisher can publish event to it // See HttpSessionEventPublisher code for details @Bean public SessionTimeoutConfigSessionCreatedEventListener sessionTimeoutConfigSessionCreatedEventListener() { SessionTimeoutConfigSessionCreatedEventListener sessionCreatedEventListener = new SessionTimeoutConfigSessionCreatedEventListener(sessionTimeoutInMins); return sessionCreatedEventListener; } @Bean public LoggingSessionDestroyedEventListener loggingSessionDestroyedEventListener() { LoggingSessionDestroyedEventListener loggingSessionDestroyedEventListener = new LoggingSessionDestroyedEventListener(); return loggingSessionDestroyedEventListener; } }