如何在Spring中的rest模板Header中设置NTLM身份验证

时间:2017-08-22 07:18:24

标签: spring rest ntlm

我想使用Rest模板验证NTLM,任何人都可以建议吗?

2 个答案:

答案 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获取线索的方法。积分仅限于此。

  1. 设置休息模板以使用apache http client - > compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.5'
  2. 更新了我的rest模板bean以使用httpclient -

    RestTemplate restTemplate = new RestTemplate(); HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(); restTemplate.setRequestFactory(requestFactory);

  3. 然后只需执行链接here所说的内容即可。添加NtlmAuthenticator class并在restTemplate调用之前执行此操作。

    NtlmAuthenticator authenticator = new NtlmAuthenticator(userName, password); Authenticator.setDefault(authenticator);

  4. 那就是它。你们都已经成立了。