【问题标题】:Grails + Apache Shiro plugin - Setting session timeoutGrails + Apache Shiro 插件 - 设置会话超时
【发布时间】:2014-11-24 15:54:21
【问题描述】:

我正在开发一个利用 apache shiro 插件的 grails 项目。我想覆盖默认会话超时。最好的方法是什么?我在某个可以设置的地方读到:

securityManager.sessionManager.globalSessionTimeout

我在哪里设置这个?在 Config.groovy 文件中?

提前感谢您的帮助。

【问题讨论】:

  • 我找到了解决方案:SecurityUtils.subject.getSession().setTimeout()

标签: grails shiro


【解决方案1】:

您的解决方案适用于每个会话,但在 web.xml 中覆盖一次比覆盖每个会话的默认值更有意义。为此,请运行 grails install-templates 并编辑 src/templates/war/web.xml。那里可能已经有一个 session-config 元素,但如果没有,您可以添加一个:

<session-config>
   <session-timeout>120</session-timeout>
</session-config>

为避免升级问题,如果您不打算更改其他模板文件,请删除这些文件。您可以随时重新运行install-templates,因为它会检测现有文件并询问您是否覆盖。

【讨论】:

  • 请注意,afaik,此设置会在您第一次安装应用程序时传输到应用程序服务器。当您重新部署它时,此设置将被忽略,必须直接在服务器中进行更改。至少,这就是我对 tomcat 的记忆......
  • 我无法想象这样的错误会持续很长时间。 web.xml 是存档的部署描述符,其值在部署期间使用,无论是新部署还是重新部署。
  • 嗯。没把它看成是bug,不过会重新检查一下。。。莫非大部分人都是通过重启tomcat重新部署的?我认为在这种情况下,web.xml 将从应用程序中重新获取。但我会检查以确保...
  • 嗯。无法重现它,所以请忽略我以前的 cmets :-(
  • 这正是我所需要的。谢谢
猜你喜欢
  • 2012-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多