我正在尝试按照本教程学习 spring-security-kerberos 我有一个密钥表,其中有一个主体:
ktutil: rkt http-web.keytab
ktutil: l
slot KVNO Principal
---- ---- ---------------------------------------------------------------------
1 3 HTTP/aulfeldt.hta.nightly@WAD.ENG.HYTRUST.COM
此密钥表是使用以下命令在 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 中使用的测试 Web 服务器上复制的:
<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 中检查出来。