Проверка токена NTLM в Java

Я хочу проверить / подтвердить подлинность type3message тот Apache httpd сервер получил от браузера клиента и передал Apache Tomcat, Я просто не могу понять, как это сделать.

У меня есть следующий механизм, как показано здесь. C это клиент. S1 это Apache httpd сервер и S2 это Apache Tomcat сервер.

1. C -> S1  GET ...
2. S1 -> C  401 Unauthorized
         WWW-Authenticate: NTLM
3. C -> S1  GET ... (type 1 message)
         Authorization: NTLM TlRMTVNTUAABAAAAA7IAAAoACgApAAAACQAJACAAAABMSUdIVENJVFlVUlNBLU1JTk9S
4. S1 -> C  401 Unauthorized (type 2 message)
         WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAAAAACgAAAABggAAU3J2Tm9uY2UAAAAAAAAAAA==
5. C -> S1  GET ... (type 3 message)
         Authorization: NTLM TlRMTVNTUAADAAAAGAAYAHIAAAAYABgAigAAABQAFABAAAAADAAMAFQAAAASABIAYAAAAAAAAACiAAAAAYIAAFUAUgBTAEEALQBNAEkATgBPAFIAWgBhAHAAaABvAGQATABJAEcASABUAEMASQBUAFkArYfKbe/jRoW5xDxHeoxC1gBmfWiS5+iX4OAN4xBKG/IFPwfH3agtPEia6YnhsADT
6. S1 -> S2 Challenge - TlRMTVNTUAACAAAAAAAAACgAAAABggAAU3J2Tm9uY2UAAAAAAAAAAA==
         Token - TlRMTVNTUAADAAAAGAAYAHIAAAAYABgAigAAABQAFABAAAAADAAMAFQAAAASABIAYAAAAAAAAACiAAAAAYIAAFUAUgBTAEEALQBNAEkATgBPAFIAWgBhAHAAaABvAGQATABJAEcASABUAEMASQBUAFkArYfKbe/jRoW5xDxHeoxC1gBmfWiS5+iX4OAN4xBKG/IFPwfH3agtPEia6YnhsADT
7. S2 -> S1 Authenticated or Not Authenticated
8. S1 -> C  200 Ok or 401 Unauhorized

в Apache Tomcat сервер, я хочу аутентифицировать пользователя. у меня есть challenge/type2message Apache httpd сервер отправляется клиенту на шаге 4 и type3message что клиент ответил на шаге 5.

Я делаю следующее, однако я получаю исключение. Мне не хватает некоторых базовых вещей, таких как настройка конфигурации и / или среды, но по какой-то причине мой мозг отказывается работать.

 NtlmPasswordAuthentication np = new NtlmPasswordAuthentication(t3m.getDomain(), t3m.getUser(), serverChallenge, t3m.getLMResponse(), t3m.getNTResponse());
 InetAddress ia = InetAddress.getByName("domain");
 UniAddress ua = new UniAddress(ia);
 SmbSession.logon(ua, np); // exception is here

Я делаю это правильно? Я хочу аутентифицировать пользователя.

0 ответов

Другие вопросы по тегам