61 final GSSManager gssManager = GSSManager.getInstance();
63 KerberosPrincipal kerberosPrincipal = kerberosTicket.getClient();
64 String krbPrincipalName = kerberosTicket.getClient().getName();
65 final GSSName gssName = gssManager.createName(krbPrincipalName, KerberosConstants.KRB5_NAME_OID);
67 Set<KerberosPrincipal> principals = Collections.singleton(kerberosPrincipal);
68 Set<GSSName> publicCreds = Collections.singleton(gssName);
69 Set<KerberosTicket> privateCreds = Collections.singleton(kerberosTicket);
70 Subject subject =
new Subject(
false, principals, publicCreds, privateCreds);
72 return Subject.doAs(subject,
new PrivilegedExceptionAction<GSSCredential>() {
75 public GSSCredential run() throws Exception {
76 return gssManager.createCredential(gssName, lifetime, KerberosConstants.KRB5_OID, usage);
80 }
catch (Exception e) {
81 throw new KerberosSerializationUtils.KerberosSerializationException(
"Unexpected exception during convert KerberosTicket to GSSCredential", e);