我知道我们可以session.setMaxInactiveInterval(1200);
设置不活动时的会话到期时间。我有一个要求,比如用户会话应该在给定的时间点到期。
例如,如果用户被配置为从上午9点到9点进行访问,则应该在晚上9点强制注销。
是否有任何功能如session.maxLife(1200);
或任何其他解决方案来实现这一目标?
答案 0 :(得分:1)
我认为你想要实现的目标可以通过拦截器完成。唯一不同的是,不是最初决定生命周期,而是在分析会话后动态阻止/允许请求。会话中可用的不同方法列在http://docs.oracle.com/javaee/5/api/javax/servlet/http/HttpSession.html。
中您可以为每个会话设置自定义属性,例如accessStartTime,accessEndTime,并且每次在拦截器中为所有请求读取它们。如果当前时间不在用户访问时间段的范围内,则可以在会话对象上调用invalidate。