我们在Heroku目前部署的webapp中遇到了有关会话超时的问题。我们的应用程序是使用Spark java和Shiro构建的。会话超时目前在我们的shiro.ini中设置如下:
sessionManager = org.apache.shiro.web.session.mgt.DefaultWebSessionManager
sessionManager.sessionIdUrlRewritingEnabled = false
sessionManager.globalSessionTimeout = 86400000
securityManager.sessionManager = $sessionManager
当在tomcat服务器上本地运行时,会话超时工作正常但是一旦部署在heroku中,会话超时将恢复为默认会话超时30分钟。
我们还尝试删除shiro.ini中的上述行并在web.xml中设置会话超时:
<session-config>
<session-timeout>1440</session-timeout>
</session-config>
但在heroku中部署时的会话超时仍为30分钟。有没有人经历过同样的事情?
谢谢!
更新
Procfile
web: java $JAVA_OPTS -jar target/dependency/webapp-runner.jar --port $PORT --session-timeout 1440 target/*.war
解决
超时的问题是由于使用了documentation中所述的30分钟不活动后休眠的免费dyno,而不是Shiro会话超时问题。感谢@codefinger提供帮助!