2009-06-18 6 views

答えて

2

から1.4ダイナミックProtectionDomainPolicyに委任できます。コードからパーミッションを動的に削除することは意味をなさないでしょう。 AccessController.doPrivilegedという2つの議論形式も役に立つかもしれません。

+1

私たちはOSGiベースのフレームワークを開発しています。これは長時間実行し、できるだけ再起動しないようにする必要があります。フレームワークはSAASですが、顧客はバンドル(プラグイン)をシステムに展開することができます。ですから、私たちにとっては、実行時にパーミッションを変更するのが良いでしょう。 –

2

Javadocによると、ファイルベースのポリシーではPolicy.refresh()がファイルを再読み込みします。したがって、実行時にポリシーファイルを編集してからPolicy.refresh()

+2

アクセス許可はすでにポリシーからクラスとクラスローダーのProtectionDomainsにコピーされています。 –

+2

'' System.setProperty( "java.security.policy"、policyURL) ''でポリシーを設定し、 '' Policy.policy.refresh() ''を更新した後にセキュリティマネージャをインストールすると、 '' System.setSecurityManager(new SecurityManager()); ''。 – BenR

2

を呼び出すことで、システム全体のポリシーを変更することができます。Policy.setPolicy()メソッドを使用してカスタムポリシーの実装を設定することができます。たとえば、JAAS in Action本を参照してください。

関連する問題