2012-02-02 145 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