2016-07-05 6 views
0

私は(これでは初めて)既存のプラグインがREST APIを介して提供するデータを基に作成するマクロプラグインを開発しています。これらは、バージョン5.9のConfluenceの同じインスタンス上で実行されます。Atlassianプラグイン間のConfluence通信/認証

プラグインのJava APIは使用できません。非常に限られたクラスにしかアクセスできないため、Restを使用することにしました。

Confluenceで既に認証されているとすれば、プラグインJava Restクライアントから他の1人に、現在のユーザー資格情報を、好ましくは基本認証を使用しないで通信する方法はありますか?

はこれまでのところ、私が試してみた:

  1. 共有アクセスレイヤ - これは明らかにメソッドRequest#addTrustedTokenAuthentication()で動作するように使用されるが、SAL 3.0.5で廃止され、 SAL Documentation (outdated?)SAL Version Matrix

  2. を参照します

    ApplicationLink - 私は別のアプリケーションにリンクすることができますが、明らかに同じConfluenceインスタンスにリンクすることはできません。

  3. SAL TrustedRequestFactory - これについてのコメントatlassian answerは、これを使用する方法がある可能性があることを示していますが、私はそれを(まだ)把握できていないようです。

  4. また、atlassianのドキュメントを読んでみたところ、atlassianの回答hereにも同様の質問が掲載されました。私は投稿を二重にするつもりはありませんが、残念ながら、そのプラットフォーム上の他の質問を見ると、タイムリーに答えられるようなものはほとんどありません。

お読みいただきありがとうございます。

答えて

1

これは非常に一般的な問題ではありませんように思えるが、私はそれが再び必要になっただけの場合には、私たちは最終的にこれを解決する方法を投稿しようと思いました。クッキーを使用することも可能である

@Component 
public class RestClient { 

    @ComponentImport 
    private TrustedTokenFactory tokenFactory; 

    // [...] 
    public String doRequest(HttpClient client, String url) throws Exception { 
     TrustedTokenAuthenticator auth = 
      new TrustedTokenAuthenticator(tokenFactory); 
     HttpMethod method = auth.makeMethod(client, url); 
     try { 
      // add request headers, etc... 
      int statusCode = client.executeMethod(method); 
      // be sure to use response data here, catch exceptions... 
     } finally { 
      method.releaseConnection(); 
     } 
    } 
} 
+0

が、私たちの場合、これは非常に良い選択ではありませんでした – andante

関連する問題