# org.ietf.jgss

***

**1. Acquire credentials (SSPI)**

```java
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)**

```java
import javax.security.auth.Subject;
import javax.security.auth.kerberos.KerberosPrincipal;
import org.ietf.jgss.*;
import org.ietf.jgss.spi.GSSManagerSpi;

public class AcquireCredentials {

    public static void main(String[] args) throws Exception {
        // Get GSS manager
        GSSManagerSpi gssManager = GSSManager.getInstance();

        // Acquire Kerberos credentials
        KerberosPrincipal principal = new KerberosPrincipal("alice@EXAMPLE.COM");
        GSSCredential 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());
    }
}
```

**3. Acquire credentials (Generic GSS-API)**

```java
import javax.security.auth.Subject;
import javax.security.auth.kerberos.KerberosPrincipal;
import org.ietf.jgss.*;
import org.ietf.jgss.spi.GSSManagerSpi;

public class AcquireCredentials {

    public static void main(String[] args) throws Exception {
        // Get GSS manager
        GSSManagerSpi gssManager = GSSManager.getInstance();

        // Acquire Kerberos credentials
        GSSName name = gssManager.createName("alice@EXAMPLE.COM", GSSName.NT_USER_NAME);
        GSSCredential credential = gssManager.createCredential(name, 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());
    }
}
```

**4. Acquire credentials (Windows GSS-API)**

```java
import javax.security.auth.Subject;
import javax.security.auth.kerberos.KerberosPrincipal;
import org.ietf.jgss.*;
import org.ietf.jgss.spi.GSSManagerSpi;

public class AcquireCredentials {

    public static void main(String[] args) throws Exception {
        // Get GSS manager
        GSSManagerSpi gssManager = GSSManager.getInstance();

        // Acquire Kerberos credentials
        KerberosPrincipal principal = new KerberosPrincipal("alice@EXAMPLE.COM");
        GSSCredential 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());
    }
}
```

**5. Initialize context (SSPI)**

```java
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());
    }
}
```

**6. Initialize context (GSS-API)**

```java
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 InitializeContext {

    public static void main(String[] args) throws Exception {
        // 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());
    }
}
```

**7. Initialize context (Generic GSS-API)**

```java
import org.ietf.jgss.*;
import

```
