Мне не удается установить тайм-аут сеанса в моем Jeepster WebApp (весенняя загрузка + Spring security + angularJS)
Я просто сделал самый простой способ:
...
/**
* Configuration of web application with Servlet 3.0 APIs.
*/
@Configuration
public class WebConfigurer implements ServletContextInitializer, EmbeddedServletContainerCustomizer
{
....
@Inject
private ServerProperties serverProperties;
....
/**
* Set up Mime types.
*/
@Override
public void customize(ConfigurableEmbeddedServletContainer container)
{
MimeMappings mappings = new MimeMappings(MimeMappings.DEFAULT);
// IE issue, see https://github.com/jhipster/generator-jhipster/pull/711
mappings.add("html", "text/html;charset=utf-8");
// CloudFoundry issue, see https://github.com/cloudfoundry/gorouter/issues/64
mappings.add("json", "text/html;charset=utf-8");
container.setSessionTimeout(serverProperties.getSession().getTimeout(), TimeUnit.MINUTES);
log.info("SessionTimeout = {}", serverProperties.getSession().getTimeout());
container.addErrorPages(new ErrorPage(HttpStatus.NOT_FOUND, "/login"));
container.setMimeMappings(mappings);
}
...
@ConfigurationProperties(prefix = "server", ignoreUnknownFields = true)
public class ServerProperties
{
private Session session = new Session();
public static class Session
{
private int timeout = 6;
public int getTimeout()
{
return timeout;
}
public void setTimeout(int timeout)
{
this.timeout = timeout;
}
}
public Session getSession()
{
return session;
}
public void setSession(Session session)
{
this.session = session;
}
}
Application.yml
server:
port: 8080
session:
timeout: 1
Журналы сообщают, что сеанс в 1 минуте:
2016-07-28 16:17:03.103 INFO 6248 --- [ restartedMain] com.tess2i.config.WebConfigurer : SessionTimeout = 1
После запуска WebApp я вошел в систему WebApp, затем я ждал более 1 минуты. Затем я нажимаю на сервер запроса. Все еще работало. Ошибка сеанса/перенаправление.
Что еще нужно сделать?
Прежде всего, вам не нужно было предоставлять какую-либо пользовательскую реализацию, server.session.timeout
установка server.session.timeout
должна поддерживаться с помощью Spring Boot из коробки, более подробную информацию см. В официальной документации.
Что касается тайм-аутов и перенаправлений, уверены ли вы, что вы не используете аутентификацию с использованием mem-me или JWT или другие методы проверки подлинности, которые не зависят от сеансов HTTP и их истечения?
server.session.timeout
. Вы уверены, что не используете аутентификацию JWT? Или я запомнил?