我们正面临Jetty SPNEGO在SpnegoLoginService.login()
内部提供NPE的问题
gssContext.getSrcName()
调用返回 null 。
SPN是:HTTP/machine.dd.aa.net@EE.AA.NET
在dd.aa.net != EE.AA.NET
?
我发现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;
}
我们的客户端设置
我们的服务器设置是
我们在服务器上使用java kinit来验证keytab以及DC。哪个好的。反向DNS区域也在工作。
是否有可能提供服务请求令牌'客户端浏览器生成的(使用智能卡登录)不提供上下文发起者/客户端原则名称?
由于
答案 0 :(得分:0)
当我们从 Java 1.8u45 转到 Java 1.8u60
时,nullpointer消失了原来服务器端没有检查客户提供的所有门票,所以没找到正确的门票。
在错误条目下方:
[JDK-8078439]如果客户提出MS krb5 OID,则SPNEGO身份验证失败