5

私はJavaのセキュリティにかなり慣れていないので、これに対する正しい答えをグーグルで検索する方法を理解するのに苦労しています.

を読み取るコード行がありますAccessController.getContext()

この結果をモックするテストを実行したいと思います。残念ながら、私は自分が何をしているのかわかりません。

AccessControlContextによって返されたを設定するにはどうすればよいAccessController.getContext()ですか?

アップデート

明確にするために、インターフェイスをモックする方法を知っています。AccessController は Java セキュリティ機能です。AccessController.getContext()メソッドが呼び出されたときに選択した AccessControlContext を返すように、独自のコンテキストを設定する方法を見つけるのに苦労しています。

4

1 に答える 1

4

わかりました、私はこれを理解しました。基本的に私がやろうとしていたのはこれでした:

Subject subject = Subject.getSubject(AccessController.getContext());

AccessControlContextを含むを作成するにはSubject、次のようにサブジェクトを取得しようとするメソッドを呼び出す必要があります。

Subject subject = new Subject();  //Set Principles here
Subject.doAs(subject, new PrivilegedAction<Void>()
{
    public Void run()
    {
        Foo.methodThatCaresAboutSubject();
    }
});
于 2012-10-22T19:56:52.720 に答える