Я застрял с этой задачей уже несколько дней. В форме входа в мое веб-приложение, прежде чем пользователь сможет ввести имя пользователя и пароль, я хочу получить в запросе имя пользователя своей учетной записи Windows. После долгих исследований я обнаружил, что Kerberos — это то, что мне нужно использовать, но я не знаю, как это сделать. У меня есть доступ к серверу Active Directory, поэтому я создал имя участника службы, установил на Java соединение с AD, но мне не удается получить пользователя Windows.
Теперь я пытаюсь использовать Waffle, и, как я читал, это так же просто, как импортировать несколько JAR-файлов и в файле JSP получить основное имя (предполагается, что это пользователь Windows), но, как я уже сказал, я не мог т сделать это.
Кто-нибудь уже делал что-то подобное??
Любая помощь будет ДЕЙСТВИТЕЛЬНО оценена,
Заранее спасибо.
ОБНОВИТЬ:
Как вы просили, вот что я сделал до сих пор:
На WServer 2012 R2 (где у меня есть AD) я создал пользователя с именем santi.mitrol.net.
Зарегистрируйте spn для этого пользователя с помощью следующей команды:
setspn -A HTTP/santi.mitrol.net santi.mitrol.net
и после этого я создал связанный keytab:
ktpass -out C:\temp\test.keytab -princ HTTP/[email protected] -mapUser santi.mitrol.net -mapOp set -pass MYPASS -crypto RC4-HMAC-NT -pType KRB5_NT_PRINCIPAL
После этой настройки я создал этот проект: https://github.com/spring-projects/spring-security-kerberos/tree/master/spring-security-kerberos-samples/sec-server-win-auth/src/main, но я не могу заставить его работать...
С Waffle то же самое.. в моем web.xml у меня есть это:
<filter-name>SecurityFilter</filter-name>
<!--<filter-class>waffle.servlet.NegotiateSecurityFilter</filter-class>-->
<filter-class>net.mitrol.config.activedirectory.CustomFilter</filter-class>
<filter-name>SecurityFilter</filter-name>
<url-pattern>/*</url-pattern>
Но когда я делаю запрос к Tomcat, который я развернул на своем ПК с другого ПК, они получают запрос на ввод учетных данных, а это не то, что мне нужно, мне нужно только получить по запросу пользователя Windows, который зарегистрирован на машине, которая делает запрос.
Спасибо