org.ietf.jgss


1. Acquire credentials (SSPI)

import com.sun.security.auth.module.NTSystem;
import javax.security.auth.Subject;
import javax.security.auth.kerberos.KerberosPrincipal;
import org.ietf.jgss.*;
import org.ietf.jgss.spi.GSSContextSpi;
import org.ietf.jgss.spi.GSSCredentialSpi;
import org.ietf.jgss.spi.GSSManagerSpi;

public class AcquireCredentials {

    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);

        // Print credential information
        System.out.println("Credential: " + credential);
        System.out.println("Principal: " + credential.getName());
        System.out.println("Mech: " + credential.getMechanism());
    }
}

2. Acquire credentials (GSS-API)

3. Acquire credentials (Generic GSS-API)

4. Acquire credentials (Windows GSS-API)

5. Initialize context (SSPI)

6. Initialize context (GSS-API)

7. Initialize context (Generic GSS-API)