http://msugai.fc2web.com/java/security/digest.html
http://www.ne.jp/asahi/hishidama/home/tech/java/security.html
!!セキュリティーポリシーファイル
!デフォルトで読み込まれるポリシーファイル
デフォルトで以下のポリシーファイルが読み込まれる
${java.home}/lib/security/java.policy
${user.home}/.java.policy
これらは、 JRE以下の lib/security/java.security に書かれている
!ポリシーファイルを指定する場合
java -Djava.security.manager -Djava.security.policy=ポリシーファイル 実行対象クラス
でポリシーファイルを指定できる。
!!ポリシーファイルの書き方
grant {
permission 〜許可する権限〜 ;
};
な感じ。
grant の後にコードベースを指定する事が出来る。
grant { 〜 }; ←全てに対しての権限許可
grant codeBase "URL" { 〜 }; ←特定のコードベースに対しての権限許可
コードベースとは、ロードされるクラスの元となった場所。
指定するのはあくまで「コードベース」、つまり各パッケージのルートディレクトリーに相当する部分のみ。パッケージ毎・個別のクラス毎に指定することは出来ない。
URLとしての指定なので、Windowsであってもスラッシュ「/」で区切る。
また、「*」や「-」をワイルドカードとして使用できる。
,codeBaseの指定例 ,該当するクラスの例 ,説明
,file:C:/workspace/- ,C:\workspace\配下のクラス{{br}}C:\workspace\sample1\classes配下のクラス{{br}}C:\workspace\sample2\classes配下のクラス{{br}}C:\workspace\hoge.jar内のクラス{{br}}C:\workspace\sample1\bin\hoge.jar内のクラス ,末尾が「/-」の場合、{{br}}サブディレクトリーまで再帰的に含めた全ての{{br}}classファイル及びjarファイル。
,file:C:/workspace/* ,C:\workspace\配下のクラス{{br}}C:\workspace\hoge.jar内のクラス ,末尾が「/*」の場合、その場所の{{br}}classファイル及びjarファイル。
,file:C:/workspace/ ,C:\workspace\配下のクラス ,末尾が「/」の場合、その場所の{{br}}classファイル。
!!サンプル
!とりあえず、全許可
grant {
permission java.security.AllPermission; ←全権限を許可
};
!とりあえず、codeベース指定して全許可
grant codeBase "file:C:/workspace/sample/classes/"{
permission java.security.AllPermission; ←全権限を許可
};
{{category2 プログラミング言語,Java}}