ich es nicht schaffen, setzen Session-Timeout in meinem Jhipster WebApp (Frühjahr Boot + Spring Security + AngularJS)Wie Session-Timeout mit Federverschluß eingebettet tomcat
ich nur die einfachste Art und Weise tat einzustellen:
...
/**
* 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
Protokolle darüber informiert, dass die Sitzung in 1 Minute Länge:
2016-07-28 16:17:03.103 INFO 6248 --- [ restartedMain] com.tess2i.config.WebConfigurer : SessionTimeout = 1
Nach dem Start der WebApp habe ich mich in WebApp eingeloggt, dann habe ich mehr als 1 Minute gewartet. Dann klicke ich irgendwo um den Server abzufragen. Alles funktionierte noch. Kein Sitzungsfehler/Umleitung.
Was muss noch getan werden?
Ihre benutzerdefinierte Implementierung war nicht erforderlich - die Eigenschaft 'server.session.timeout' wird standardmäßig verwendet. Sind Sie sicher, dass Sie keine JWT-Authentifizierung verwenden? Oder hast du dich erinnern mich aktiviert? –
Gemäß der Dokumentation sind die Einheiten dieser Eigenschaft in Sekunden angegeben. server.session.timeout = # Sitzungszeitlimit in Sekunden. http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html –