Java 8 kerberos约束委派

时间:2015-03-31 11:22:51

标签: java-8 kerberos

是否有关于如何使用Java 8/7进行约束委派的示例。我试着找不到运气

最好的问候

1 个答案:

答案 0 :(得分:1)

以下是Java 8代码段,允许为模拟用户生成带有TGS票证的SPNEGO令牌:

GSSManager manager = GSSManager.getInstance();
GSSName userName = manager.createName("targetUser", GSSName.NT_USER_NAME);
GSSCredential impersonatedUserCreds =
  ((ExtendedGSSCredential)serviceCredentials).impersonate(userName);

final Oid KRB5_PRINCIPAL_OID = new Oid("1.2.840.113554.1.2.2.1");
GSSName servicePrincipal =
  manager.createName("HTTP/webservice-host.domain.ltd", KRB5_PRINCIPAL_OID);
ExtendedGSSContext extendedContext =
  (ExtendedGSSContext) manager.createContext(servicePrincipal,
                                             new Oid("1.3.6.1.5.5.2"),
                                             impersonatedUserCreds,
                                             GSSContext.DEFAULT_LIFETIME);
final byte[] token = extendedContext.initSecContext(new byte[0], 0, 0);

当心extendedContext尚未建立。可能需要多轮服务器。

完整的演示代码可在https://github.com/ymartin59/java-kerberos-sfudemo

获得