Svn 捕获凭据并用于登录到JIRA

Svn 捕获凭据并用于登录到JIRA,svn,authentication,scripting,hook,jira,Svn,Authentication,Scripting,Hook,Jira,我使用标准的SVN-JIRA预提交钩子强制用户在使用提交时输入JIRA问题ID作为注释。它调用一个python,该python使用硬编码的用户名和密码登录到JIRA。这带来了两个问题: IT安全策略针对写入文件中的此密码 有权访问SVN但无权访问JIRA的用户仍可更新JIRA问题 所以我想使用提交人的凭据登录到JIRA 你认为最好的办法是什么?我不太确定访问控制机制是否到位。我们对SVN(AIX服务器上的SVN acl)、Windows和JIRA使用相同的用户名,但密码不同,所以我假设是LDAP

我使用标准的SVN-JIRA预提交钩子强制用户在使用提交时输入JIRA问题ID作为注释。它调用一个python,该python使用硬编码的用户名和密码登录到JIRA。这带来了两个问题:

  • IT安全策略针对写入文件中的此密码
  • 有权访问SVN但无权访问JIRA的用户仍可更新JIRA问题
  • 所以我想使用提交人的凭据登录到JIRA

    你认为最好的办法是什么?我不太确定访问控制机制是否到位。我们对SVN(AIX服务器上的SVN acl)、Windows和JIRA使用相同的用户名,但密码不同,所以我假设是LDAP/AD组合

    我可以很快想到两个即兴创作,但都不是很干净/优雅:

  • 没有其他身份验证信息传递给SVN,因此可能会有一个VBscript弹出窗口(我使用的是TortoiseSVN客户端+Subclipse),在提交时要求输入JIRA密码(您可以从Python脚本自动填充“author”。或者以某种方式启动JIRA登录窗口

  • 虚拟SSO-强制用户为登录保留相同的密码。使用Win/SVN中的creds登录到JIRA.Makeshift,因为它取决于人的行为和不同的密码策略。当因此不允许提交时,您是不干净的


  • 我对第三方解决方案(Fisheye???)持开放态度,但首选的是黑客/脚本。

    我认为您所寻找的不可能,因为:

  • 没有身份验证信息传递给SVN钩子脚本,所以您不能使用用户+密码登录到JIRA

  • 即使您可以在SVN中获得用户+密码,因为您似乎正在为SVN使用不同的身份验证机制,SVN中的密码在JIRA(使用LDAP)上也不起作用

  • 老实说,我只是不认为使用一个特殊帐户连接到JIRA是一个问题。你的第二点是事实上应该发生的事情。只要SVN中发生了与JIRA问题相关的事情,我们就应该更新JIRA中的状态,不管是谁做的提交


    如果你同意这一点,剩下的就是脚本中的简单密码。我认为有很多方法可以解决这个问题。我相信Python有一些神秘的库,你可以利用它们。

    最简单的解决方案是对Jira和Subversion进行身份验证。如果用户在他们的SVN提交注释中引用Jira问题,则e comment将添加到相关的Jira问题中。至于限制具有SVN访问权限但没有Jira访问权限的用户,您可以添加一个post commit钩子,用于检查群组以验证用户是否具有Jira访问权限。我不确定为什么允许有人提交源代码但不评论错误,但这取决于您。

    日志记录的目的是什么进入Jira?你正在使用这个插件吗?是的。这就是插件。更新了问题Adrian,+1的观点,但没有回答我的问题。更新了问题以解决你的第1点和第2点。现在关于
    脚本中的普通密码
    目前它正在使用我的Jira ID+密码哪一个)需要定期更新,并且b)从流程的角度来看是依赖于人的。增加的一点并不能使情况更容易解决:)我想你可以看看@Logan的答案。先决条件是,Jira和SVN的身份验证需要由同一后端完成,以便有可能实现您想要做的事情。顺便说一句,弹出屏幕询问密码似乎也行不通,因为我相信SVN的协议,没有办法捕获和传输此类额外信息,我明白了。。但是你能想到的任何其他方式。。API。。也许是PERL库?这与要使用的语言或api无关。这在逻辑上是不可能的。如果需要为JIRA进行身份验证,则需要获取相关信息。然而,你们并没有办法在SVN端得到它。如果您坚持使用SVN用户登录JIRA(我不认为有任何原因),要么您存储了所有JIRA用户的密码以供SVN脚本查找,要么在JIRA中找到某种方法,允许您在没有实际身份验证的情况下“模拟”任何人。我相信这两个都不可能/令人满意的是,FactoryLast resort将创建一个定制的客户机,该客户机在其中执行SVN提交和相应的JIRA更新。通过这样做,您可以要求用户输入所需的任何密码。然而,我只是不知道为什么有人会想走这种麻烦的方式,而你可以简单地连接到一个特殊的帐户吉拉和做的工作。