2011-08-13 4 views
2

私は自分のセキュリティマネージャを作成しました。私のプログラムでは他のユーザのコードを実行しています。Javaセキュリティマネージャは、誰がアクセスを要求するのかを確認します。

私の質問は、どのようにしてcheckXXXXX()メソッドでアクセスを要求するセキュリティマネージャのメソッドで調べることができるかです。

ありがとうございます。

答えて

2

いいえ一般的なケースでこれを行う簡単な方法はありません。

(あなたはWebコンテナ内で実行された場合は、それが現在の要求の認証の詳細のホールドを取得する方法を提供するかもしれない。しかし、それはあなたのユースケースのような音はありません。)

は、私はそこにあると思いますこれを実装しようとする可能性があるさまざまな方法がありますが、ユーザーIDを偽装するコードから保護するためには注意が必要です。 1つのアイデアは、各ユーザーIDを個別のThreadGroupに関連付け、セキュリティー・マネージャーに他のスレッド・グループ内のスレッドの作成をブロックさせることです。 Thread(ThreadGroup group, Runnable target, String name)のjavadocを読んで、スレッドグループチェックについて何が言及されているかに注意してください。

+0

ご回答ありがとうございます。私は既に、あなた自身のスレッドを登録しなければならないセキュリティキーを持つ他のスレッドでのスレッドの作成をブロックし、そのスレッドを作成することができます。 しかし、私はセキュリティマネージャーがスレッド自身によって呼び出されていることを知っているので、私は多くの助けになりました。スレッドグループとスレッドIDを見つけることができます。だから私はセキュリティキーでスレッドを登録するために同じことをすることは問題ではありません! ありがとうございます! – Nicolas