增加Jenkins登录超时

时间:2014-10-16 14:56:46

标签: jenkins hudson

有人知道如何在Jenkins注销用户之前增加超时窗口吗?我希望把它提升到1天左右。

我整天都在jenkins工作,我们一直在工作之间退出。除此之外,“保持登录状态”复选框似乎也不起作用。

9 个答案:

答案 0 :(得分:59)

詹金斯使用Jetty和Jetty's default timeout is 30 minutes。这与身份验证设置无关 - 我使用的是Active Directory,但它仍然会影响超时。

您可以通过将参数--sessionTimeout=<minutes>传递给Jenkins init脚本或-DsessionTimeout=<minutes>传递给.war文件来覆盖超时。例如:

# Set the session timeout to 1 week
$ java -jar jenkins.war --sessionTimeout=10080

或者,您可以编辑Jenkins'<jenkinsHome>/.jenkins/war/WEB-INF/web.xml并添加显式设置:

<session-config>
  <!-- one hour -->
  <session-timeout>60</session-timeout>
</session-config>

根据Oracle's docs,你可以将其设置为0以完全禁用超时。

要查找超时的当前值,可以使用Jenkins中提供的Groovy控制台:

import org.kohsuke.stapler.Stapler;
Stapler.getCurrentRequest().getSession().getMaxInactiveInterval() / 60

在我的实例中,显示Result: 30

答案 1 :(得分:12)

从Jenkins 2.107.2版开始,您将要包括sessionEviction

例如,让人们保持24小时和12小时不活动状态的登录状态:

--sessionTimeout=1440 --sessionEviction=43200

如果您未指定sessionEviction,则关闭标签页的人将在30分钟后退出。

答案 2 :(得分:11)

从1.528开始,您可以在通过init脚本启动jenkins时使用--sessionTimeout <minutes>参数。如果开始战争,请传入-DsessionTimeout=<minutes>

更新1.6

如果以arg身份传入--sessionTimeout=<minutes>

答案 3 :(得分:8)

似乎也可以使用grovy console设置它:

import org.kohsuke.stapler.Stapler;
Stapler.getCurrentRequest().getSession().setMaxInactiveInterval(TIME_IN_SECONDS)

但我想它只适用于当前会话

答案 4 :(得分:4)

此版本的Jenkins 1.567还具有启用自动刷新选项,因此它以某种方式保持刷新会话,我永远不会注销。它对我有用......

答案 5 :(得分:1)

在我的Linux发行版中,可以将此设置添加到/ etc / sysconfig / jenkins

# Pass arbitrary arguments to Jenkins.
# Full option list: java -jar jenkins.war --help
#
JENKINS_ARGS="--sessionTimeout=480"

随后,使用

重新启动
sudo /etc/init.d/jenkins restart

答案 6 :(得分:1)

对于Ubuntu:

nano /etc/default/jenkins

附加到文件末尾的 JENKINS_ARGS

JENKINS_ARGS="--webroot=/var/cache/$NAME/war --httpPort=$HTTP_PORT --sessionTimeout=1440 --sessionEviction=43200"

答案 7 :(得分:0)

如果Jenkins作为Windows服务(jenkins.exe)运行,则可以在安装目录的jenkins.xml中编辑参数。

答案 8 :(得分:0)

在 Windows Server 上使用 Jenkins 2.2x 作为 Windows 服务设置

--sessionTimeout=1440 --sessionEviction=43200

可以在这里添加

<arguments>... -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" ... --sessionTimeout=1440 --sessionEviction=43200</arguments>

位于 Jenkins 文件夹中的文件 jenkins.xml 中,对我来说是:

C:\Program Files\Jenkins 在 Windows Server 2012 上。

C:\Program Files (x86)\Jenkins 在 Windows Server 2008 R2 上

重新启动服务以使更改生效。