是否可以在Confluence插件中获取用户名和密码? Usernam像我一样为我工作:
ApplicationUser user = userUtil.getUserByName(userManager.getRemoteUsername(request));
我想与当前用户连接到Jira Rest Api。
答案 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以对象进行编组。