1

gradle による Junit テストで使用するセキュリティ マネージャーを渡したいです。私はjvmargs(動作していません)を試しましたが、今はこれを使用しています:

apply plugin: 'java'

test {
  systemProperties << ['java.security.policy': file("$projectDir/security.policy").absolutePath]
}

...

Java クラス

package hello;

import java.io.*;
import java.lang.*; 

public class MyClass {
  public void method() {
    try {
        File file = new File("/etc/passwd");
        FileReader fr = new FileReader(file);
        char [] a = new char[50];
        fr.read(a);
        for(char c : a)
           System.out.print(c);
        fr.close();
    } catch (Exception ex) {
        ex.printStackTrace();
    }
  }
}

私のポリシーは次のとおりです。

grant {
    permission java.io.FilePermission "/home/-", "read";
};

そのため、読み取ろうとするとセキュリティ例外が発生することを期待しています/etc/passwdが、そうではありません。

4

1 に答える 1