ユーザー名とパスワードを含むWebフォームの内容を取得し、kerberosを使用してWindowsベースのドメインに認証するJavaベースのWebアプリケーションがあります。ケルベロスの詳細なログをJavaで有効にする
KDCアドレスは、ルックアップごとに異なるIPアドレスにマッピングされるように構成されており、これはコマンドラインからpingコマンドを使用して確認できます。
コールはほとんどの要求に対してただちに応答しますが、応答は断続的に低速です(5-10秒またはそれ以上)。私は、これがどのドメインコントローラが使用されているのかもしれないと思います。
kerberosログを有効にしようとしましたが、ドメインコントローラのIPアドレスは表示されません。どのようにしてより詳細なログを有効にして、不快なドメインコントローラを識別しようとしますか?
コード抽出は、ファイルシステムからkerb.confとkerb_context.confを取得します。
kerb.confは次のとおりです。
[libdefaults]
default_realm = EXAMPLE.COM
[realms]
CYMRU.NHS.UK = {
kdc = example.com:88
admin_server = example.com
kpasswd_server = example.com
}
kerb_context.confは次のとおりです。
primaryLoginContext {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=false
refreshKrb5Config=true
debug=true;
};
例ソースがある:私は有効にする方法を見つけることができませんでした
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);
}
}
'-Dsun.security.krb5.debug = true'に私はコピーして、この十分な回数を貼り付けるので、私は、私はそれワンライナーにするだろうと思っていました。 –