2014-10-16 68 views
45

有谁知道如何在Jenkins注销用户之前增加超时窗口?我期待将它提高到1天左右。增加Jenkins登录超时

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

+0

詹金斯的什么版本?有一个与登录cookie相关的Jenkins错误:https://issues.jenkins-ci.org/browse/JENKINS-16278。即使它不适用于您的版本,也应该阅读该错误中的疑难解答注释。该错误还指出,默认的登录cookie超时时间为14天。 – 2014-10-16 21:47:27

+0

@DaveBacher我们正在运行v1.567,并且绝对不会获得14天的登录:) – Ray 2014-10-17 13:24:55

+0

@DaveBacher我在Chrome和Firefox中登录10分钟之后,通过快速杀死浏览器客户端来测试记住我,工作,所以我认为注销正在被迫并打破记住我。 – Ray 2014-10-17 13:34:13

回答

40

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

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

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

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

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

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

找出超时的当前值,你可以使用詹金斯提供Groovy的控制台:

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

在我的情况,这说明Result: 30

+2

似乎这个参数应该是' - -sessionTimeout = '(注意等号) – 2015-10-01 16:48:48

+1

其中是WEB-INF目录? – bubakazouba 2016-12-13 18:43:58

+1

@bubakazouba在我的Debian系统上,它位于/ var/cache/jenkins/war /。在Windows 7上,它位于C :\ Program Files(x86)\ Jenkins \ war \ – 2016-12-22 15:14:25

1

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

9

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

更新1.6

如果传递为ARG使用--sessionTimeout=<minutes>

+0

这是我的詹金斯过程。但它仍然在10分钟以内超时。怎么了? “java -Dcom.sun.akuma.Daemon = daemonized -Djava.awt.headless = true -Xmx6144m -Xms2048m -XX:MaxPermSize = 512m -XX:+ CMSClassUnloadingEnabled -XX:+ UseConcMarkSweepGC -Dhudson.diyChunking = false -DJENKINS_HOME =/export/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile =/var/log/jenkins/jenkins。log --webroot =/var/cache/jenkins/war --daemon --httpPort = 80 --ajp13Port = 8009 --debug = 5 --handlerCountMax = 100 --handlerCountMaxIdle = 20 --sessionTimeout = 600 --Dorg.kohsuke .stapler.compression.CompressionFilter.disabled = true“ – Baskar 2015-04-01 21:15:15

+0

看起来你正在发动战争,尝试传递'-DsessionTimeout = 600' – cesar 2015-04-01 22:15:56

+2

看起来像jenkins 1.6的参数应该是'--sessionTimeout = '(注意等于标记) – 2015-10-01 16:49:33

2

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

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

但我想这将只可用于当前会话

+0

我使用了这种方法,并将0传递给方法来禁用当前会话的会话超时。 – jstricker 2017-05-03 18:49:39