JerseyとApache HttpClientを使用する既存のアプリケーションにNTLN認証を追加する際に問題があります。私はJCIFSのみを使用して認証できました.HttpClientのデフォルトNTLM認証は機能しません(401
)。JCIFをJerseyで使用できますか?
のApache HttpClientをページからの例では、CloseableHttpClientを使用する方法を示しています。 https://hc.apache.org/httpcomponents-client-4.5.x/ntlm.html
Registry<AuthSchemeProvider> authSchemeRegistry = RegistryBuilder.<AuthSchemeProvider>create()
.register(AuthSchemes.NTLM, new JCIFSNTLMSchemeFactory())
.register(AuthSchemes.BASIC, new BasicSchemeFactory())
.register(AuthSchemes.DIGEST, new DigestSchemeFactory())
.register(AuthSchemes.SPNEGO, new SPNegoSchemeFactory())
.register(AuthSchemes.KERBEROS, new KerberosSchemeFactory())
.build();
CloseableHttpClient httpClient = HttpClients.custom()
.setDefaultAuthSchemeRegistry(authSchemeRegistry)
.build();
しかしCloseableHttpClientで、私はtarget
ようなメソッドを使用することはできません。
WebTarget target = client.target(this.my Address).path(elementPath)
.resolveTemplate(P_ID, myId);
のみexecute
があります。
私は私が私の全体のアプリケーションを書き換え、基本的にHttpClientは次のように呼び出すだけ使うべきかどうかわからないんだけど:
HttpGet httpGet = new HttpGet(repositoryAddress + "/" + "element/70032_1498404600000(,,arm)");
CloseableHttpResponse response = httpClient.execute(httpGet);
またはジャージーで使用することができjavax.ws.rs.client.Client
にAuthSchemesを設定するためにいくつかの他の方法は、ありますか?