import com.sun.security.auth.module.NTSystem;
import javax.security.auth.Subject;
import org.ietf.jgss.*;
import org.ietf.jgss.spi.GSSContextSpi;
import org.ietf.jgss.spi.GSSCredentialSpi;
import org.ietf.jgss.spi.GSSManagerSpi;
public class InitializeContext {
public static void main(String[] args) throws Exception {
// Acquire NT credentials
Subject subject = new Subject();
NTSystem ntSystem = new NTSystem();
ntSystem.initialize(subject);
// Get GSS manager
GSSManagerSpi gssManager = GSSManager.getInstance();
// Acquire Kerberos credentials
KerberosPrincipal principal = new KerberosPrincipal("alice@EXAMPLE.COM");
GSSCredentialSpi credential = gssManager.createCredential(principal, GSSCredential.DEFAULT_LIFETIME,
KerberosGSSContextSpi.MECH_OID, GSSCredential.INITIATE_AND_ACCEPT);
// Initialize context
GSSName targetName = gssManager.createName("bob@EXAMPLE.COM", GSSName.NT_USER_NAME);
GSSContextSpi context = gssManager.createContext(targetName, KerberosGSSContextSpi.MECH_OID, credential,
GSSContext.DEFAULT_LIFETIME);
// Print context information
System.out.println("Context: " + context);
System.out.println("Target name: " + context.getSrcName());
System.out.println("Mech: " + context.getMech());
}
}