Javaセキュリティを有効にして、/ tmpフォルダにあるフォルダに対するファイルアクセス許可を付与しました。以下 許可が付与ファイルに追加されポリシーファイルのJavaセキュリティ許可の許可
permission "java.io.FilePermission" "/tmp/tmpScript/-", "read, write, delete, execute";
しかし、アプリケーションの実行中に、例外がスローされた -
java.security.AccessControlException: access denied ("java.io.FilePermission" "<<ALL FILES>>" "execute")
を私はスクリプトを実行するProcessBuilderをを使用したProcessBuilderのコンストラクタファイルの絶対パスにしています引数が渡されます。 しかし、Javaのソースコード
public void checkExec(String cmd) {
File f = new File(cmd);
if (f.isAbsolute()) {
checkPermission(new FilePermission(cmd,
SecurityConstants.FILE_EXECUTE_ACTION));
} else {
checkPermission(new FilePermission("<<ALL FILES>>",
SecurityConstants.FILE_EXECUTE_ACTION));
}
}
f.isAbsolute()がfalseを返している原因わからない見て、従って、そのファイルの許可を得て他の部分を実行しようとしています。
パスに「/」という接頭辞が追加されていますが、引き続き同じファイルのアクセス権の問題が返されています。 – Anish