我想使用Rest模板验证NTLM,任何人都可以建议吗?
答案 0 :(得分:2)
如果有人再次迷失于此条目,这是内置解决方案:
确保您的项目包含org.apache.httpcomponents.httpclient
。
然后,您可以使用以下代码段构建RestTemplate:
CredentialsProvider credsProvider = new BasicCredentialsProvider();
credsProvider.setCredentials(AuthScope.ANY, new NTCredentials(user, password, "source-host-name", "domain-name"));
CloseableHttpClient httpClient = HttpClients.custom()
.setDefaultCredentialsProvider(credsProvider)
.build();
HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory();
requestFactory.setHttpClient(httpClient);
RestTemplate restTemplate = new RestTemplate(requestFactory);
答案 1 :(得分:1)
这就是我从here获取线索的方法。积分仅限于此。
apache http client
- > compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.5'
更新了我的rest模板bean以使用httpclient -
RestTemplate restTemplate = new RestTemplate();
HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory();
restTemplate.setRequestFactory(requestFactory);
然后只需执行链接here所说的内容即可。添加NtlmAuthenticator class
并在restTemplate调用之前执行此操作。
NtlmAuthenticator authenticator = new NtlmAuthenticator(userName, password);
Authenticator.setDefault(authenticator);
那就是它。你们都已经成立了。