1

我正在本地域上测试 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. 系统管理员运行setspn -S myservice/host.my.example.com krbsrv以设置活动目录的 SPN。

  3. 从 GssClient.java 通过以下方式创建 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))异常。

  4. 但如果我打电话createName()GSSName.NT_USER_NAME不会出错。

  5. 我已经询问了系统管理员并验证了setspn -L krbsrv和没有重复setspln-X myservice/host.my.example.com

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

非常感谢您的建议。

4

0 回答 0