Confluence REST API授权

时间:2018-01-19 13:59:51

标签: javascript ajax rest confluence

  1. 用户已登录Confluence;
  2. 还有另一个外部WEB应用程序可以将附件保存到具体页面。
  3. 要从外部应用程序执行休息呼叫,我需要知道confluence用户的用户和密码(但我不知道,因为授权已经通过。或者可以使用会话ID;
  4. 如何获取REST访问的访问令牌?如何使用访问汇合令牌执行ajax调用?

    <?php
    parse_str(file_get_contents("php://input"), $var1);
    var_dump ($var1); //this will give you the array.
    ?>
    

2 个答案:

答案 0 :(得分:0)

您希望模拟用户并代表他们执行操作,而无需身份验证。一般来说,你不能这样做。它是跨站请求伪造(CSRF)的一种形式,尽管是出于良性目的。应该保护应用程序不受这些限制。

答案 1 :(得分:0)

我调查了一下,看起来您可以通过API模拟用户。我正在报告Martin Cassidy's answer on the Atlassian forum,稍加编辑以修复拼写:

您需要做的是:

  • 创建公钥和私钥对
  • 使用Jira GUI设置受信任的应用程序,启用双腿OAuth选项
  • 像往常一样发送请求(忘记请求令牌以及访问和访问令牌,并在请求的查询字符串中包含以下参数
    • oauth_consumer_key - 通过Jira GUI在受信任的应用程序设置中设置的使用者姓名
    • oauth_token - 一个空字符串
    • oauth_signature_method - 应该是RSA-SHA1,因为这是所有Jira支持
    • oauth_signature - 您的请求的签名,您必须使用您的私钥生成此签名。如果使用Java,我推荐net.oauth类,与Jira OAuth示例中的相同(https://developer.atlassian.com/display/JIRADEV/JIRA%2520REST%2520API%2520Example%2520-%2520OAuth%2520authentication
    • oauth_timestamp - 同样,您可以使用net.oauth
    • 自动生成此内容
    • oauth_nonce - 再次,如上所述自动生成
    • user_id - 可选,如果指定,Jira将以指定用户身份运行RESTful请求。如果没有给出,Jira将使用您在受信任的应用程序配置中的Execute中指定的用户运行请求。

请注意,Martin正在讨论使用Jersey的Java客户端。您可以在JavaScript中执行相同操作,但是您应该知道您将私有访问令牌泄露给Confluence,允许任何抓住它的人代表您的应用程序发出请求。因此,建议在服务器端实现该部分,您可以在其中隐藏API密钥。