我(这是新来的)正在开发一个宏插件,该宏插件建立在现有插件通过其REST API提供的数据上。它们将在Confluence 5.9版的同一实例上运行。
我不能使用插件的Java API,因为它仅提供对非常有限数量的类的访问,因此我决定使用Rest。
假设用户已经通过Confluence进行了身份验证,是否有任何方法可以将我当前的用户凭据从我的插件Java Rest客户端传递给另一个客户端(最好是不使用基本身份验证)?
到目前为止,我已经尝试过:
共享访问层-显然用于此方法,Request#addTrustedTokenAuthentication()
但在SAL 3.0.5中已弃用,请参阅SAL文档(已过时?)和SAL版本矩阵
ApplicationLink-将允许我链接到另一个应用程序,但是显然不可能链接回相同的Confluence实例
SAL-TrustedRequestFactory
对这个Atlassian答案的评论表明可能有一种使用此方法的方法,但我似乎还无法弄清楚(尚未)。
我还尝试阅读Atlassian文档,并在此处发布了有关Atlassian答案的类似问题。我不是要重复发表文章,但是不幸的是,在该平台上查看其他问题时,似乎没有及时得到答复,所以我想我会在这里碰碰运气。
似乎这不是一个很常见的问题,但我想我会发布一下我们最终如何解决此问题的方法,以防万一再次需要它:
@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();
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句