J'ai du mal à ajouter l'authentification NTLN à mon application existante qui utilise Jersey et Apache HttpClient. Je ne pouvais authentifier en utilisant JCIFS, l'authentification NTLM par défaut de HttpClient ne fonctionne pas (j'obtiens 401
).JCIFS peut-il être utilisé avec Jersey?
L'exemple de la page Apache HttpClient montre comment utiliser 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();
Mais avec CloseableHttpClient je ne peux pas utiliser des méthodes comme target
:
WebTarget target = client.target(this.my Address).path(elementPath)
.resolveTemplate(P_ID, myId);
Il n'y a execute
.
Je ne sais pas si je devrais réécrire ma demande tout et utiliser uniquement les appels HttpClient de base comme:
HttpGet httpGet = new HttpGet(repositoryAddress + "/" + "element/70032_1498404600000(,,arm)");
CloseableHttpResponse response = httpClient.execute(httpGet);
ou il y a une autre façon de mettre en AuthSchemes javax.ws.rs.client.Client
, qui peut être utilisé à Jersey?