У меня есть приложение с весенней загрузкой, которое развертывается в Google App Engine.
У меня есть требование установить время сеанса на основе условия.
Я попытался подключить successHandler в конфигурации безопасности Spring как
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable()
.sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.ALWAYS)
.and()
.successHandler(successHandler())
}
А вот и обработчик успеха
private AuthenticationSuccessHandler successHandler() {
return (httpServletRequest, httpServletResponse, authentication) -> {
httpServletRequest.getSession().setMaxInactiveInterval(10);
};
}
Я выяснил, что движок приложений Google использует сервер Jetty (на самом деле Jetty 9) и
он часто хранит созданные сеансы в memcache и datastore.
что-то, как движок приложения не соблюдает время ожидания сеанса, установленное путем вызова
httpServletRequest.getSession().setMaxInactiveInterval(10);