开始和Jenkins一起玩。创建了新工作并输入了SVN存储库URL。压制的构建和jenkins成功检出了我的存储库。我的存储库没有匿名访问权限。毫无头绪,Jenkins如何设法检出存储库。
在Windows XP + Tomcat6 + Jenkins war文件上运行。
Jenkins可能设法从系统属性中读取密码?现在正试图找到这个配置文件,它存储密码-s或设置
更新
不确定,但看起来,Jenkins从togoise svn cache读取SVN凭据。当我清理缓存时,无法再从Jenkins访问存储库
答案 0 :(得分:11)
确实,它从Subversion缓存中获取。至少,现在我知道,保存密码并不是一个好主意
Subversion将在$HOME/.subversion
文件中查找凭据,但它也会将每个作业下的密码存储在名为subversion.credentials
的文件中。
通常,您的Jenkins机器无法访问凡人,您可以将Jenkins $HOME
目录设为其他用户所有。这样,您就可以使用操作系统的安全功能来防止人们偷看您的Jenkins凭据。
另一种可能性是让Jenkins的Subversion结帐用户成为只读用户。这将允许Jenkins签出代码,但如果有人抓住Jenkins Subversion帐户,他们将无法进行更改。
如果您还使用Jenkins标记Subversion版本,则可以使用pre-commit hook来允许Jenkins创建标记,但不能执行任何其他操作。
这应该可以减轻您的安全问题。如果您考虑一下,Jenkins必须能够存储其subversion帐户和密码,否则它将无法自动检出构建代码。
答案 1 :(得分:4)
credentials.xml,默认情况下,它位于〜/ .jenkins /
下答案 2 :(得分:1)
确实,它从Subversion缓存中获取。至少,现在我知道,保存密码并不是一个好主意
答案 3 :(得分:0)
答案 4 :(得分:0)
Jenkins将svn凭证存储在.jenkins / hudson.scm.SubversionSCM.xml中,删除旧的userName和密码条目,并将条目保留为空并保存文件。 稍后重启jenkins并进入作业配置和Repository URL,Jenkins将提示输入新的svn凭据。 -Praveen