我不管理设置会话超时我Jhipster Web应用程序(春季启动+弹簧安全+ angularJS)如何设置会话超时弹簧启动tomcat的嵌入
我只是做了最简单的方法:
...
/**
* 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'属性。你确定你没有使用JWT认证吗?还是记得启用? –
根据文档,该属性的单位是秒。 server.session.timeout =#以秒为单位的会话超时。 http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html –