【发布时间】:2011-09-02 21:35:03
【问题描述】:
我正在尝试关注this tutorial for spring-security-kerberos 我有一个密钥表,其中有一个主体:
ktutil: rkt http-web.keytab
ktutil: l
slot KVNO Principal
---- ---- ---------------------------------------------------------------------
1 3 HTTP/aulfeldt.hta.nightly@WAD.ENG.HYTRUST.COM
这个keytab是在win 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
我已尝试将 Web 服务器(Centos 5.5、tomcat6)加入 AD WAD.ENG.HYTRUST.COM 并且可以使用 AD 凭据登录,然后使用 /etc/krb5.keytab 中的主体来查看它是否可以被阅读......同样的回应。我还尝试了很多大写和小写名称的变体。
ps 今天早上从 git 中检查了它。
【问题讨论】:
标签: spring-security kerberos spnego