Aktivieren der ausführlichen Protokollierung für kerberos in java

Ich habe eine java-basierte web-Anwendung, die den Inhalt einer web-Formular mit Benutzername und Passwort und Authentifizierung mit kerberos auf einem Windows-basierten Domäne.

KDC-Adresse ist anscheinend so konfiguriert, um anzeigen auf verschiedenen IP-Adressen bei jedem lookup-und dies bestätigt sich durch die Verwendung des ping-Befehls von der Befehlszeile aus.

Den Anruf reagiert sofort für die meisten Anfragen, aber die Antwort ist langsam (5-10 Sekunden oder noch länger) nur zeitweise. Ich denke, dies kann durch die domain-controller verwendet wird.

Ich habe versucht, schalten Sie die kerberos-Protokollierung, aber die IP-Adresse der domain-controller nicht angezeigt. Wie kann ich auf mehr detaillierte Protokollierung zu versuchen, zu identifizieren dodgy Domänencontroller bitte?

Den code extrahieren Quellen der kerb.conf und kerb_context.conf aus dem Dateisystem.

Den Bordstein.conf:

[libdefaults]
default_realm = EXAMPLE.COM

[realms]
CYMRU.NHS.UK = {
        kdc = example.com:88
        admin_server = example.com
        kpasswd_server = example.com
}

Den kerb_context.conf:

 primaryLoginContext {
        com.sun.security.auth.module.Krb5LoginModule required
        useTicketCache=false
        refreshKrb5Config=true
        debug=true;
};

Beispiel Quelle:

static NadexUser executePerformLogin(String username, String password) throws LoginException {
            char[] passwd = password.toCharArray();
            String kerbConf = ERXFileUtilities.pathForResourceNamed("nadex/kerb.conf", "RSCorp", null);
            String kerbContextConf = ERXFileUtilities.pathURLForResourceNamed("nadex/kerb_context.conf", "RSCorp", null).toExternalForm();
            System.setProperty("java.security.krb5.conf", kerbConf);
            System.setProperty("java.security.auth.login.config", kerbContextConf);
            try {
                    LoginContext lc = new LoginContext("primaryLoginContext", new UserNamePasswordCallbackHandler(username, password));
                    lc.login();
                    return new _NadexUser(lc.getSubject());
            }
            catch (javax.security.auth.login.LoginException le) {
                    throw new LoginException("Failed to login : " + le.getLocalizedMessage(), le);
            }
    }

InformationsquelleAutor Mark Wardle | 2013-03-13

Schreibe einen Kommentar