使用 Apache httpcomponents (httpclient5) 进行 Kerberos 身份验证

问题描述 投票:0回答:1

我想从 Apache httpclient(v3.x 和 Java 8)迁移到 httpcomponents(httpclient5 和 Java 17),并从 NTLM 身份验证迁移到 Kerberos。但我还没有找到任何关于如何做到这一点的例子。我只找到 v4.x 及以下版本的示例。有什么想法如何在 v5.x 中做到这一点吗?还可能吗?

我当前代码的粗略版本:

CredentialsProvider credsProvider;
RequestConfig requestConfig;
credsProvider = new BasicCredentialsProvider();
credsProvider.setCredentials(AuthScope.ANY, new NTCredentials(user, pass, host, domain));
requestConfig = RequestConfig.custom().setTargetPreferredAuthSchemes(Collections.singletonList(AuthSchemes.NTLM)).build();
HttpClient httpClient = HttpClients.custom().setDefaultCredentialsProvider(credsProvider)
                .setDefaultRequestConfig(requestConfig).build();
HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory();
requestFactory.setHttpClient(httpClient);
RestTemplate restTemplate = new RestTemplate(requestFactory);
restTemplate.getForObject(url, String.class);
java authentication httpclient kerberos java-17
1个回答
0
投票

我最终选择了基于 Spring 的方法(无论哪种方式,它都是一个 Spring 项目),这种方法更干净、更简单,如这个简单的示例所示。

© www.soinside.com 2019 - 2024. All rights reserved.