spring-security-kerberos无法读取密钥表?

| 我正在尝试按照本教程的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中检查了一下。     
已邀请:
有几个错误导致“无法从用户获取密码”: 密钥表文件的位置指定错误(就像@jasop 指出);它应该像
classpath:http-web.keytab
file:c:/http-web.keytabl
错误指定的主体名称(即 与生成密钥表文件的实际值不匹配) keytab文件路径中的空格(请注意是否曾经 固定),-在关于SPRING SECURITY KERBEROS / SPNEGO EXTENSION SpringSource博客条目的评论中看到了抱怨,并收到了关于我的开发环境的证据-Windows 7 / Java 6,-必须始终考虑绝对路径(即使classpath引用了keytab)没有空格)     
我有完全相同的问题。 问题是您的\“ keyTabLocation \”设置。 您不能将其设置为/WEB-INF/http-web.keytab 您需要将其设置为文件路径或类路径中的某个内容。 例如,我将文件放在类路径上并进行以下设置:
    <property name=\"keyTabLocation\" value=\"classpath:http-web.keytab\" />
    

要回复问题请先登录注册