我正在尝试关注this tutorial for spring-security-kerberos 我有一个keytab,其中包含一个主体:
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中的主体来查看它是否可以被阅读...相同的回应。我还在大写和小写名称上尝试了很多变种。
今天早上从git检查了它。答案 0 :(得分:4)
有几个错误导致“无法从用户获取密码”:
classpath:http-web.keytab
或file:c:/http-web.keytabl
答案 1 :(得分:0)
我有完全相同的问题。
问题是你的“keyTabLocation”设置。 您无法将其设置为/WEB-INF/http-web.keytab
您需要将其设置为文件路径或类路径上的内容。
例如,我将我的文件放在类路径上并进行了以下设置:
<property name="keyTabLocation" value="classpath:http-web.keytab" />