2014-10-07 111 views
0

我想通過安全管理器來通過gradle在Junit測試中使用。 我試過jvmargs(不工作),現在我使用的是這樣的:Gradle爲測試定義安全策略

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但我不知道。

+0

還有呢?這種嘗試的結果是什麼? – Opal 2014-10-08 06:05:34

+0

類從/ etc/passwd輸出行,它應該不是 – 2014-10-08 11:58:19

回答

0

Gradle User Guide section 46.2.3對設置系統屬性的測試,從你的不同的例子:

test { 
    systemProperties 'property': 'value' 
} 

也許你可以用語法嘗試,這將是

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