Spnego Kerberos身份验证为Windows 7用户提供“请求是重放(34)”错误

时间:2016-02-04 08:19:24

标签: tomcat7 kerberos spnego gssapi jgss

我在Tomcat 7 webapp上设置了Spnego身份验证。它适用于Ubuntu 14.04和Windows 10用户。但是,使用Chrome / Firefox / IE的所有用户都会收到以下错误:

GSSException: Failure unspecified at GSS-API level (Mechanism level: Request is a replay (34)) 我无法确定这个的根本原因。如何调试此问题,因为它特定于Windows 7用户?

3 个答案:

答案 0 :(得分:1)

检查您的服务器和客户端是否同步其时钟。

答案 1 :(得分:1)

当我通过令牌时,我遇到了这个问题,令牌生成一次,并在标题中重复使用相同的令牌。

  

val tokenLoadedOnce = KrbHttpClient.token get.addHeader(" Authorization",   s"谈判$ tokenLoadedOnce")

相反,当我生成令牌EVERYTIME并添加到标头时,此问题已得到解决。

  

get.addHeader(" Authorization",s" Negotiate $ {KrbHttpClient.token}")

答案 2 :(得分:0)

就我而言,当我使用Solr时,会触发此异常。 然后我对Solrconfig.xml进行了更改以支持Kerberos。

<directoryFactory name="DirectoryFactory" class="solr.HdfsDirectoryFactory">
      <str name="solr.hdfs.home">hdfs://nas.XYZ.lan:8020/user/solr</str>
      <bool name="solr.hdfs.blockcache.enabled">true</bool>
      <int name="solr.hdfs.blockcache.slab.count">1</int>
      <bool name="solr.hdfs.blockcache.direct.memory.allocation">true</bool>
      <int name="solr.hdfs.blockcache.blocksperbank">16384</int>
      <bool name="solr.hdfs.blockcache.read.enabled">true</bool>
      <bool name="solr.hdfs.nrtcachingdirectory.enable">true</bool>
      <int name="solr.hdfs.nrtcachingdirectory.maxmergesizemb">16</int>
      <int name="solr.hdfs.nrtcachingdirectory.maxcachedmb">192</int>
      <bool name="solr.hdfs.security.kerberos.enabled">true</bool>
      <str name="solr.hdfs.security.kerberos.keytabfile">/etc/krb5.keytab</str>
      <str name="solr.hdfs.security.kerberos.principal">solr/admin@KERBEROS.COM</str>
  </directoryFactory>