增加Jenkins登录超时

Ray*_*Ray 70 hudson jenkins

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

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

Wil*_*hes 62

Jenkins使用Jetty,Jetty的默认超时为30分钟.这与身份验证设置无关 - 我使用Active Directory但它仍然会影响超时.

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

# Set the session timeout to 1 week
$ java -jar jenkins.war --sessionTimeout=10080
Run Code Online (Sandbox Code Playgroud)

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

<session-config>
  <!-- one hour -->
  <session-timeout>60</session-timeout>
</session-config>
Run Code Online (Sandbox Code Playgroud)

根据Oracle的文档,您可以将其设置为0以完全禁用超时.

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

import org.kohsuke.stapler.Stapler;
Stapler.getCurrentRequest().getSession().getMaxInactiveInterval() / 60
Run Code Online (Sandbox Code Playgroud)

在我的实例中,这表明Result: 30.

  • @bubakazouba在我的Debian系统上,它位于/ var/cache/jenkins/war /中.在Windows 7上,它位于C:\ Program Files(x86)\ Jenkins\war \ (3认同)
  • 似乎参数应该是`--sessionTimeout = <minutes>`(注意等号). (2认同)
  • `WEB-INF`目录在哪里? (2认同)
  • 我无法让 DsessionTimeout 工作,但确实让 sessionTimeout 工作。 (2认同)
  • 从 Jenkins 2.107.2 开始,单独设置此值是不够的。请检查@jhuffaker对此问题的评论。 (2认同)

小智 20

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

例如,要让人们在24小时和12小时不活动状态下登录:

--sessionTimeout=1440 --sessionEviction=43200
Run Code Online (Sandbox Code Playgroud)

如果您未指定sessionEviction,则关闭该选项卡的人将在30分钟后退出.

  • 您可以像这样确认驱逐空闲时间:import org.kohsuke.stapler.Stapler; sess = Stapler.getCurrentRequest().getSession(); printf("sessionTimeout:%d seconds \n",sess.getMaxInactiveInterval()); printf("sessionEviction:%d seconds \n",sess.getSessionHandler().getSessionCache().getEvictionPolicy()); (6认同)
  • 可以在groovy控制台中使用Stapler.getCurrentRequest()。getSession()。getMaxInactiveInterval()/ 60来检查当前的“ sessionTimeout”。您知道如何在Groovy控制台中获取/设置`sessionEviction`吗? (2认同)
  • 谢谢!这困扰了我一年多了,直到现在我才从没碰过`--sessionEviction`参数。 (2认同)

ces*_*sar 11

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

1.6的更新

如果作为arg使用传入 --sessionTimeout=<minutes>

  • 似乎jenkins 1.6的参数应该是`--sessionTimeout = <minutes>`(注意等号). (2认同)

Roc*_*ens 10

对于 Ubuntu:

nano /etc/default/jenkins
Run Code Online (Sandbox Code Playgroud)

附加到文件末尾的JENKINS_ARGS

JENKINS_ARGS="--webroot=/var/cache/$NAME/war --httpPort=$HTTP_PORT --sessionTimeout=1440 --sessionEviction=43200"
Run Code Online (Sandbox Code Playgroud)


Sve*_*ler 8

它似乎也可以使用grovy控制台设置它:

import org.kohsuke.stapler.Stapler;
Stapler.getCurrentRequest().getSession().setMaxInactiveInterval(TIME_IN_SECONDS)
Run Code Online (Sandbox Code Playgroud)

但我想它只适用于本届会议


小智 5

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

# Pass arbitrary arguments to Jenkins.
# Full option list: java -jar jenkins.war --help
#
JENKINS_ARGS="--sessionTimeout=480"
Run Code Online (Sandbox Code Playgroud)

随后,重新启动

sudo /etc/init.d/jenkins restart
Run Code Online (Sandbox Code Playgroud)