2014-10-16 67 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