Больше на Пользовательский Java SecurityManager в тестах JUnit не работает , Рэндгальт спрашивает об этом коде в своих юнитах, что делает его тесты неудачными:
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, и когда я запускаю тест, который пытается прочитать файл ресурса из classpath:
InputStream is = TestUtils.class.getResourceAsStream(name);
Я получаю ошибку проверки разрешения для
("java.io.FilePermission" "<path>/resource.xml" "read")
Это заставляет входной поток возвращаться как ноль, и тест не проходит. Менеджер безопасности, кажется, дает все разрешения на все, поэтому я не совсем понимаю, что происходит. Разве «все» на самом деле не означает все?