如何根据 AEM 中的用户不活动使 JCR 会话无效?

How to invalidate a JCR session based on user inactivity in AEM?

我正在为我在 AEM 6.3 中登录我的网站并希望在一定时间不活动后从网站注销用户的用例设计解决方案。

但是,我在javax.jcr.sessionAPI中没有找到任何这样的方法,它允许相同的。作为参考,我正在寻找类似于 HttpSession 的 setMaxInactiveInterval(int interval) 方法的东西。

还有,如果在JCR Sessions中做不到,是不是有意识的设计选择?如果是,相同的原因是什么?

您不必担心jcr Session,sling 会为每个请求创建一个新会话,并在请求完成后关闭它。没有与用户会话相关联的 jcr 会话。

Sling 将用户会话委托给底层 servlet 容器 Jetty;其中,默认配置永远不会清除服务器上的 sessionid 缓存。但登录令牌 cookie 未设置任何到期日期,并在浏览器会话关闭时被清除。