Как я могу передать текущие учетные данные пользователя Windows в сообщении HTTP в JAVA? - PullRequest
0 голосов
/ 07 июня 2019

У меня есть программа на Java, которая должна сделать пост на URL, который требует аутентификации.Я не хочу указывать жестко запрограммированное имя пользователя и пароль, я просто хочу использовать учетные данные пользователя, который запускает программу Java.

Я прошел через различные классы HTTPClient и скачал Waffle.Я просто не могу найти правильную комбинацию, чтобы получить текущие учетные данные пользователя Windows и передать их в запрос на публикацию.

Этот код работает:

NTCredentials creds = new NTCredentials("user", "pass", "host", "domain");
HttpCLient client = new HttpClient;
HttpClient.getState().setCredentials(AuthScope.ANY, creds);

Когда я пишу сообщение,Я получаю 200 ответ.Как я могу сделать то же самое, но вместо создания NTCredentials из жестко закодированных значений я передаю учетные данные пользователя, работающего с Java-программой?

Я пробовал Waffle:

WindowsSecurityContextImpl context = new WindowSecurityContextImpl;
System.out.println(context.getPrincipalName());

Iможно получить имя пользователя Windows.Но я не могу найти способ передать действительные учетные данные в HttpClient.

Спасибо.

1 Ответ

0 голосов
/ 07 июня 2019

Пароль не может быть восстановлен. В лучшем случае можно получить имя пользователя, которое вы уже сделали. В вашем случае, когда требуется аутентификация API, у API должен быть пользователь API с вращающимися паролями, которые можно использовать для доступа к службе. Если для доступа требуются учетные данные, специфичные для пользователя, должен появиться запрос о том, где пароль введен вошедшим в систему пользователем (снова), прежде чем система продолжит выполнение рабочего процесса

...