3

確かに私は JAAS API に慣れていませんが、jre 7 へのアップグレード中に発生した問題の調査を手伝う必要があります。現在ログオンしている Windows ユーザー名を使用して自動ログインできたアプリは動作を停止します。いろいろ調べてみると、このコード行にたどり着きました。

sun.security.krb5.Credentials.Credentials.acquireTGTFromCache(null, null);

これは、jre 7 jvm を使用すると null を返しますが、jre 6 を使用すると正しい資格情報を返します。最も単純な形式でテスト クラスを作成しても、同じ動作が見られるため、独自のクラスのコードが原因であるとは考えられません。

package test;

import sun.security.krb5.Credentials;

public class Scratch {
    public static void main(final String args[]) throws Exception {
        final Credentials yaoza = Credentials.acquireTGTFromCache(null, null);
        System.out.println(yaoza);
    }
}

これは何らかの構成上の問題でしょうか? 正しい方向への答えまたはポインタは大歓迎です。ありがとうございました!

4

1 に答える 1

1

Windowsレジストリでは、ここにあります:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters

どうやら次のキーがあるはずです:

allowtgtsessionkey REG_DWORD (1)

...このスレッドの誰かによると: https ://forums.oracle.com/forums/thread.jspa?threadID = 2343216

そこに述べられているように、これがそもそも機能していたのはJDK6のバグだったのかもしれません。

于 2012-05-09T13:58:59.633 に答える