从Atlassian插件中获取当前用户的凭据

时间:2017-07-17 09:35:47

标签: java jira confluence jira-rest-api

是否可以在Confluence插件中获取用户名和密码? Usernam像我一样为我工作:

ApplicationUser user = userUtil.getUserByName(userManager.getRemoteUsername(request));

我想与当前用户连接到Jira Rest Api。

1 个答案:

答案 0 :(得分:0)

正如@Philipp Sander已经评论过的那样,无法检索用户的密码。 Confluence只以加密方式存储密码,因此它甚至不知道用户密码。

但是,既然您正在谈论Confluence插件,那么还有另一种与其他Atlassian应用程序交谈的方式。使用应用程序链接的REST API。

如果您要求用户在Confluence中配置JIRA的应用程序链接,那么您的插件可以使用ApplicationLink的getApplicationLinks方法获取ApplicationLinkService实例:

java.lang.Iterable<ApplicationLink> getApplicationLinks(java.lang.Class<? extends ApplicationType> type) 

    Retrieves all ApplicationLinks of a particular ApplicationType.

接下来,您可以在ApplicationLink实例上调用createAuthenticatedRequestFactory方法,例如:

ApplicationLinkRequestFactory   createAuthenticatedRequestFactory() 

    The ApplicationLinkRequestFactory returned by this method will choose a single AuthenticationProvider for automatically authenticating created Request objects.

RequestFactory可以将REST请求发送到您正在瞄准的应用程序,即。 JIRA。

有关详细信息,您还可以查看SAL API文档,其中包含有关如何使用RequestFactory的示例。

Atlassian社区还有this useful related question解释了如何使用JAXB获取RequestFactory以对象进行编组。