标签: session-timeout

IIS中的会话超时和空闲超时有什么不同?

在IIS中,选择默认网站>属性>主目录>应用程序设置>配置>选项,默认会话超时为20分钟.此外,选择应用程序池> DefaultAppPool>属性,在性能选项卡中,有空闲超时,默认为20分钟.这两次超时有什么不同?

iis application-pool session-timeout

11
推荐指数
1
解决办法
4万
查看次数

休息调用过期会话:HTTP 401响应导致浏览器显示登录窗口

我编写了一个HTML 5应用程序,它使用AngularJS并与在Tomcat上运行的Java REST后端接口.我使用Spring Security来处理登录和安全性.

当用户进入网站时,他被转发到登录页面,该登录页面创建会话并重定向到索引页面.REST调用从服务器加载更多数据,然后使用该会话进行身份验证.如果没有会话,我将回退到基于HTTP的基本身份验证,这样就可以从Web应用程序中单独调用REST端点.

我现在遇到的问题是会话到期时.这会导致HTTP 401 Unauthenticated服务器响应.我以为我可以捕获该错误并使用Javascript将用户重定向回登录页面.但是在调用我的错误处理程序之前,浏览器首先显示一个登录窗口,只有当我单击取消时我的Javascript错误处理程序才能处理响应.

我的问题是,有没有办法阻止浏览器显示此登录窗口?或者这是我的应用程序设计的一般问题?

替代方案可能是根本不使用会话并在应用程序中缓存用户名和密码.然后我需要使用基本身份验证发送每个REST调用,这是一个更好的方法吗?

以下是来自服务器的HTTP响应:

HTTP/1.1 401 Unauthorized
Server: Apache-Coyote/1.1
WWW-Authenticate: Basic realm="Spring Security Application"
Content-Type: text/html;charset=utf-8
Content-Length: 999
Date: Mon, 30 Sep 2013 11:00:34 GMT
Run Code Online (Sandbox Code Playgroud)

更新:看起来原因是WWW-Authenticate标题,导致浏览器显示登录对话框.

rest session http spring-security session-timeout

11
推荐指数
1
解决办法
4926
查看次数

如何增加Selenium网格会话超时?

在运行我的测试时,我需要长时间延迟(约40秒).

而且我看到,Selenium会话在此期间被删除了.

请帮忙:如何配置会话超时增加?

这是我在Selenium节点日志中开始延迟后30秒内看到的内容:

INFO org.openqa.selenium.remote.server.DriverServlet - 会话7f5fffec-4882-4c4c-b091-c780c66d379d由于客户端超时而被删除

睡眠40秒后,我的代码中出现此异常:

org.openqa.selenium.remote.SessionNotFoundException

我试图增加所有可能的超时.以下是我启动集线器的方法:

java -jar selenium-server-standalone.jar -role hub 
-hubConfig selenium_hub.json 
-nodeTimeout 61 
-remoteControlPollingIntervalInSeconds 180 
-sessionMaxIdleTimeInSeconds 240 
-newSessionMaxWaitTimeInSeconds 250 
-timeout 59
Run Code Online (Sandbox Code Playgroud)

这里是selenium_hub.json:

{
  "host": null,
  "port": 4444,
  "newSessionWaitTimeout": -1,
  "servlets": [],
  "prioritizer":  null,
  "capabilityMatcher": "org.openqa.grid.internal.utils.DefaultCapabilityMatcher",
  "throwOnCapabilityNotPresent": true,
  "nodePolling": 5000,
  "cleanUpCycle": 5000,
  "timeout": 60000,
  "browserTimeout": 60000,
  "maxSession": 5,
  "jettyMaxThreads": -1
}
Run Code Online (Sandbox Code Playgroud)

没有在节点上配置任何超时.这是我在网格控制台中看到的内容:

browserTimeout : 60000
capabilityMatcher : org.openqa.grid.internal.utils.DefaultCapabilityMatcher
cleanUpCycle : 5000
host : null
hubConfig : /usr/local/selenium/config/selenium_hub.json
jettyMaxThreads : -1
maxSession : 5
newSessionMaxWaitTimeInSeconds …
Run Code Online (Sandbox Code Playgroud)

selenium selenium-grid session-timeout selenium-webdriver

11
推荐指数
1
解决办法
2万
查看次数

基于Debian的系统会话在30分钟内在特殊的cron中被杀,如何覆盖?

一直在拉我的头发试图找出为什么我的会议在30分钟被终止/杀死/摧毁.好吧,看起来基于Debian的系统有一个特殊的cron运行,忽略了所有的php.ini和apache配置,并在30分钟时杀死任何空闲会话.

cron路径: /etc/cron.d/php5

在cron里面:

# /etc/cron.d/php5: crontab fragment for php5
#  This purges session files older than X, where X is defined in seconds
#  as the largest value of session.gc_maxlifetime from all your php.ini
#  files, or 24 minutes if not defined.  See /usr/lib/php5/maxlifetime

# Look for and purge old sessions every 30 minutes
09,39 *     * * *     root   [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -print0 | xargs …
Run Code Online (Sandbox Code Playgroud)

php apache session debian session-timeout

10
推荐指数
1
解决办法
1万
查看次数

在Zend Framework中获取会话到期时间

在Zend Framework或PHP中有没有办法让时间到会话(PHPSESSID cookie)到期?

php zend-framework session-timeout session-cookies

10
推荐指数
1
解决办法
1万
查看次数

在数据库更新期间防止会话超时

背景

Web应用程序调用存储过程以执行密集数据库更新.相关部分web.xml更新为四小时:

<session-config>
    <session-timeout>240</session-timeout>
</session-config>
Run Code Online (Sandbox Code Playgroud)

可用于该解决方案的技术包括Java 1.4.2,Struts 2,Tomcat 5.5和Apache commons.大多数其他技术(例如jQuery)是不允许的.

问题

更新大约需要一个小时才能运行,但配置值为四小时是违反企业标准的(出于好的理由).生产中不允许四小时超时配置.

在数据库更新执行时,什么将确保请求不会超时?

思路

我在前两种情况下的担心是,生成的进程最终将被Servlet容器杀死.

页面刷新

  1. 将数据库更新过程生成为后台任务.
  2. 让Servlet不断刷新页面以检查完成情况.

JavaScript Ping

  1. 将数据库更新过程生成为后台任务.
  2. 让JavaScript代码ping服务器一段时间.

类似于在JSF中长时间处理期间防止会话超时,但没有jQuery.

更新服务器

编写一个侦听请求的简单服务器:

  1. Servlet向侦听器发送请求.
  2. 侦听器运行更新.

由于服务器独立于Tomcat运行,因此不会发生会话超时.数据库更新将运行完成而不会被终止.这有很多问题(错误处理不是我最关心的问题),并且可能是最后的选择.

优化

优化查询以在30分钟内完成(最大允许超时)是可能的,但很可能无法充分优化查询.

硬件

不幸的是,升级数据库硬件不是一种选择.

非常感谢!

java tomcat session-timeout

10
推荐指数
1
解决办法
9610
查看次数

有没有办法结合SESSION_EXPIRE_AT_BROWSER_CLOSE和SESSION_COOKIE_AGE的行为

出于安全考虑,我将SESSION_EXPIRE_AT_BROWSER_CLOSE设置为true.

但是,浏览器长度的cookie(一旦用户关闭他或她的浏览器就会过期的cookie)没有过期时间,那么SESSION_COOKIE_AGE没有效果(是的,我检查它).但我想在不活动时设置注销/超时加上注销浏览结束.

我的问题是,在浏览器长度的cookie场景中实现非活动超时/注销的最佳方法什么?

django session-timeout

10
推荐指数
1
解决办法
7425
查看次数

如何将rails会话cookie到期时间设置为"session"

对于不在表面上的Rails部分,我不是很有经验.

我想要的是拥有一个会话cookie,该会话cookie的到期时间设置为session当用户离开浏览器或其他任何内容时到期.作为安全措施.

ruby session ruby-on-rails session-timeout

10
推荐指数
2
解决办法
2万
查看次数

会话到期时,在客户端自动执行操作

我希望显示<p:growl>会话已过期.我找到了许多处理会话过期的方法,如会话超时和JSF/PrimeFaces ajax请求上的ViewExpiredException处理,但是我无法将faces消息推送到<p:growl>.

到目前为止,当HTTP会话在服务器端自动过期时,如何在客户端自动运行一些(JavaScript)代码?

jsf session-timeout primefaces

10
推荐指数
2
解决办法
2万
查看次数

处理客户端的会话超时

场景是用户应该在她的会话即将到期时收到通知(例如通过典型的JS警报或重定向等).可以做的几种方法是

  1. 使用JavaScript超时功能解释在这里.
  2. 使用服务器推送使用的WebSockets其关闭过程将需要HTML5的支持.

这两种方法的相对优点/缺点是什么?除了这些,还有其他方法可以实现(一些标准库等).我的后端是Java EE(Struts + Spring).

javascript java sessiontracking session-timeout

9
推荐指数
1
解决办法
9489
查看次数