【问题标题】:Get Credentials from Current User in Atlassian Plugin在 Atlassian 插件中从当前用户获取凭据
【发布时间】:2017-12-21 18:42:18
【问题描述】:

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

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

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

【问题讨论】:

  • 获取密码?那将是一个巨大的安全漏洞。我希望这不起作用。

标签: java jira confluence jira-rest-api


【解决方案1】:

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

但是,由于您说的是 Confluence 插件,因此还有另一种方法可以使用应用程序链接与其他 Atlassian 应用程序的 REST API 通信。

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

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,它解释了如何让 RequestFactory 使用 JAXB 编组对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 2011-04-01
    • 2016-12-24
    相关资源
    最近更新 更多