Spring-Security-Kerberos не может прочитать keytab? - PullRequest
3 голосов
/ 26 мая 2011

Я пытаюсь следовать этому учебнику для spring-security-kerberos У меня есть таблица ключей с одним участником:

ktutil:  rkt http-web.keytab
ktutil:  l
slot KVNO Principal
---- ---- ---------------------------------------------------------------------
   1    3 HTTP/aulfeldt.hta.nightly@WAD.ENG.HYTRUST.COM

Эта таблица ключей была сгенерирована при победеКонтроллер домена 2k8 с этой командой:

ktpass /out http-web.keytab /mapuser aulfeldt-hta-nightly@WAD.ENG.HYTRUST.COM /princ HTTP/aulfeldt.hta.nightly@WAD.ENG.HYTRUST.COM /pass *

, который был скопирован через тестовый веб-сервер, используемый в spnego.xml:

<bean class="org.springframework.security.extensions.kerberos.SunJaasKerberosTicketValidator">
  <property name="servicePrincipal" value="HTTP/aulfeldt.hta.nightly@WAD.ENG.HYTRUST.COM" />
  <property name="keyTabLocation" value="/WEB-INF/http-web.keytab" />
  <property name="debug" value="true" />
</bean>

, но не может найтипринципал:

Key for the principal HTTP/aulfeldt.hta.nightly@WAD.ENG.HYTRUST.COM not available in 
jndi:/localhost/spring-security-kerberos-sample-1.0.0.CI-SNAPSHOT/WEB-INF/http-web.keytab
            [Krb5LoginModule] authentication failed 
Unable to obtain password from user

Я попытался присоединить веб-сервер (Centos 5.5, tomcat6) к AD WAD.ENG.HYTRUST.COM и войти в систему, используя учетные данные AD, а затем использовать участника из / etc /krb5.keytab просто чтобы посмотреть, можно ли его прочитать ... тот же ответ.Я также перепробовал множество вариантов в верхнем и нижнем регистре имен.

ps проверил это из git этим утром.

Ответы [ 2 ]

4 голосов
/ 04 сентября 2012

Есть несколько ошибок, которые приводят к «Невозможно получить пароль от пользователя»:

  1. неверно указана локализация файла keytab (как указывал @jasop);это должно быть что-то вроде classpath:http-web.keytab или file:c:/http-web.keytabl
  2. неправильно заданное имя участника (т. е. имя участника, которое не соответствует фактическому имени, для которого был создан файл таблицы ключей)
  3. whiteпробелы в пути к файлу keytab (обратите внимание, обязательно, если это когда-либо было исправлено), - видел жалобы в комментариях к SPRING SECURITY KERBEROS / SPNEGO EXTENSION Запись в блоге SpringSource и получил подтверждение в моей среде разработки - Windows 7 /Java 6, - абсолютный путь должен учитываться всегда (даже если на keytab ссылается classpath без пробелов)
0 голосов
/ 06 марта 2012

У меня была точно такая же проблема.

Проблема в настройке «keyTabLocation». Вы не можете установить его в /WEB-INF/http-web.keytab

Вам нужно установить это значение в путь к файлу или путь к классу.

Например, я поместил свой файл в путь к классам и установил этот параметр:

    <property name="keyTabLocation" value="classpath:http-web.keytab" />
...