Как установить NTLM-аутентификацию в заголовке шаблона отдыха весной

Я хочу аутентифицировать NTLM с помощью шаблона Rest, может ли кто-нибудь предложить способ?


person ssshekhawat    schedule 22.08.2017    source источник


Ответы (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);
person StaticBR    schedule 10.11.2019

это то, что я сделал, взяв подсказки из здесь. Кредиты идут только здесь.

  1. Настройте оставшийся шаблон для использования apache http client -> compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.5'
  2. Обновлен мой bean-компонент шаблона отдыха для использования httpclient -

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

  3. Затем просто сделайте то, что говорит ссылка здесь. Добавьте NtlmAuthenticator class и сделайте это непосредственно перед вызовом restTemplate.

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

Вот и все. Вы все настроены.

person Vikram Gulia    schedule 08.02.2018