在Custom Java SecurityManager in JUnit tests are failing,Randgalt在使测试失败的过程中询问了此代码:
Policy.setPolicy(new Policy() {
@Override
public PermissionCollection getPermissions(CodeSource cs) {
Permissions mainPermissions = new Permissions();
mainPermissions.add(new AllPermission());
return mainPermissions;
}
});
// set a security manager so permissions get applied,
System.setSecurityManager(new SecurityManager());
他显然解决了他的问题,但我遇到了同样的事情。我在@BeforeClass方法中获得了上面的代码,当我运行一个试图从类路径读取资源文件的测试时:
InputStream is = TestUtils.class.getResourceAsStream(name);
我的权限检查失败
("java.io.FilePermission" "<path>/resource.xml" "read")
这会使输入流返回为null,并且测试失败。安全管理器似乎对所有内容都授予了所有权限,所以我真的不太了解发生了什么。 “所有”不是真的意味着全部吗?