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

问题描述 投票:1回答:1

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

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

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

java jira confluence jira-rest-api
1个回答
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来对象进行编组。

© www.soinside.com 2019 - 2024. All rights reserved.