/** * */ package de.lbank.security.auth.kerberos; import javax.security.auth.Subject; import javax.security.auth.login.LoginContext; import javax.security.auth.login.LoginException; /** * @author Jochen Riedlinger * */ public class Krb5TicketInitiator { // public static String negotiateBase64TicketFromPlainPassword(String s, String s1, String servicePrincipalName) throws LoginException { // byte[] initToken = negotiateTicketFromPlainPassword(s, s1, servicePrincipalName); // // String base64Token = de.lbank.security.auth.Base64.encodeBytes(initToken); // return base64Token; // } public static byte[] negotiateTicketFromPlainPassword(String s, String s1, String servicePrincipalName) throws LoginException { LoginContext logincontext = null; logincontext = new LoginContext(de.lbank.security.auth.Constants.SERVER_INIT_DOMAIN_FOR_BASIC_FALLBACK, new SimpleCallbackHandler(s, s1)); logincontext.login(); Subject subject = logincontext.getSubject(); GSSClientNegotiationPrivilegedAction verhandler = new GSSClientNegotiationPrivilegedAction(s, servicePrincipalName); byte[] initToken = Subject.doAs(subject, verhandler); return initToken; } }