2016-07-05 44 views
0

我(在这个新的)开发建立在数据一个现有的插件经由其REST API提供了一个宏插件。他们将运行在5.9版本的Confluence的同一个实例上。Atlassian的合流通信/认证

我不能使用插件的Java API的,因为它只提供了访问类的量非常有限,所以我决定利用休息。

鉴于该用户已经与合流认证,有没有办法从我的插件的Java REST客户端最好不使用基本身份验证沟通我目前的用户凭据到另一个,?

到目前为止,我已经试过:

  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

也可以使用cookie,但这在我们的案例中不是一个很好的选择 – andante