Jetty SPNEGO / SSO提供NPE。预期原因krn5.ini?

时间:2016-01-05 17:45:47

标签: cross-domain single-sign-on kerberos spnego gssapi

我们正面临Jetty SPNEGO在SpnegoLoginService.login()内部提供NPE的问题 gssContext.getSrcName()调用返回 null

SPN是:HTTP/machine.dd.aa.net@EE.AA.NET
dd.aa.net != EE.AA.NET

时,KRB5​​.INI文件中是否必须有特殊设置?

我发现Google的唯一线索是来自某些在线源代码的警告信息:

if (gssContext.isEstablished()) {
    if (gssContext.getSrcName() == null) {
        log.warn("GSS Context accepted, but no context initiator recognized. Check your kerberos configuration and reverse DNS lookup configuration");
        return false;
    }

我们的客户端设置

  • Internet-explorer浏览器,设置为negotiate / spnego
  • 使用Windows SmartCard登录

我们的服务器设置是

  • Java 8u45
  • Jetty 9
  • 使用org.eclipse.jetty.security.SpnegoLoginService

我们在服务器上使用java kinit来验证keytab以及DC。哪个好的。反向DNS区域也在工作。

是否有可能提供服务请求令牌'客户端浏览器生成的(使用智能卡登录)不提供上下文发起者/客户端原则名称?

由于

1 个答案:

答案 0 :(得分:0)

当我们从 Java 1.8u45 转到 Java 1.8u60

时,nullpointer消失了

原来服务器端没有检查客户提供的所有门票,所以没找到正确的门票。

在错误条目下方:
   [JDK-8078439]如果客户提出MS krb5 OID,则SPNEGO身份验证失败