2012-02-02 124 views
5

開始與Jenkins玩耍。創建新工作並輸入SVN存儲庫URL。按下的構建和jenkins成功地檢出了我的存儲庫。我的存儲庫沒有匿名訪問。沒有線索,詹金斯如何設法檢出庫。Jenkins存儲SVN憑據

在Windows XP + Tomcat6 + Jenkins war文件上運行。

可能Jenkins設法從系統屬性中讀取密碼?眼下試圖找到這個配置文件,它存儲的密碼-S或設置

UPDATE

不知道,但是看起來,詹金斯宣讀烏龜SVN緩存SVN憑據。當我清理緩存時,無法再從Jenkins訪問存儲庫

回答

10

事實上,它從Subversion緩存中獲取它。至少,現在我知道,這不是好主意,以保存密碼

Subversion會看在$HOME/.subversion文件的憑據,但它也存儲在一個名爲subversion.credentials文件中的每個任務下的密碼。

通常情況下,您的Jenkins機器無法通過單純的凡人訪問,您可以使Jenkins $HOME目錄歸其他用戶所有。這樣,您就可以使用操作系統的安全功能來防止人們偷看Jenkins證書。

另一種可能性是讓Subversion爲Jenkins檢出用戶爲只讀用戶。這將允許Jenkins檢出代碼,但如果有人觸發Jenkins Subversion帳戶,他們將無法進行更改。

如果您還使用Jenkins標記Subversion版本,則可以使用pre-commit hook來允許Jenkins創建標記,但無法執行其他任何操作。

這應該可以緩解您的安全隱患。如果你仔細想想,詹金斯必須能夠存儲它的顛覆帳號和密碼,否則它將無法自動檢出構建代碼。

1

確實,它從Subversion緩存中獲取它。至少,現在我知道,這不是個好主意,保存密碼

4

credentials.xml,在默認情況下,它是在〜/ .jenkins/

+1

這是唯一對我有效的工作,之後Jenkins重新啓動,然後將我的svn憑證添加回 – 2015-07-02 08:51:56

+0

這就是這個地方! – 2016-12-19 13:02:03

0

我發現更新密碼最簡單的方法。

通常,它是一個安全的http連接,我的意思是https。只需將其更改爲http,那麼Jenkins會立即提示您更新svn詳細信息,您可以在其中更新憑證和網址。 enter image description here

0

Jenkins將svn憑證存儲在.jenkins/hudson.scm.SubversionSCM.xml中,刪除舊的用戶名和密碼條目並將條目留空並保存該文件。 稍後重新啓動jenkins並轉到作業配置和存儲庫URL,Jenkins將提示輸入新的svn憑據。 -Praveen