JGSS GSSName.NT_HOSTBASED_SERVICE不适用于kerberos服务密钥表

时间:2014-04-01 03:59:02

标签: java kerberos jgss

我正在本地域测试JGSS示例,但是遇到了基于主机的服务问题。以下是设置:

  1. 获取从命令ktpass -princ myservice/host.my.example.com@MY.EXAMPLE.COM -mapuser krbsrv@my.example.com -crypto RC4-HMAC-NT -ptype KRB5_NT_PRINCILAL -pass krbpass -out myservice-host.keytab

  2. 生成的密钥表
  3. 系统管理员运行setspn -S myservice/host.my.example.com krbsrv为活动目录设置SPN。

  4. 来自GssClient.java的
  5. 通过以下方式创建serverprincipal:

    GSSName serverName = manager.createName(serverPrinc, GSSName.NT_HOSTBASED_SERVICE);
    

    这将导致java.security.PrivilegedActionException: GSSException: No valid credentials provided (Mechanism level: Server not found in Kerberos database (7))例外。

  6. 但如果我使用createName()致电GSSName.NT_USER_NAME,则不会有任何错误。

  7. 我已向系统管理员询问并确认setspn -L krbsrvsetspln-X myservice/host.my.example.com没有重复。

  8. 那么有什么我搞砸了吗?服务器在Solaris上运行,客户端在Windows上运行,两者都在Java 6u27上。

    非常感谢建议。

0 个答案:

没有答案