配置Java安全策略以允许JUnit?

配置Java安全策略以允许JUnit?,java,java-security,Java,Java Security,我正在开发一个Java应用程序。我想在安全受限的JVM中运行它的单元测试,以阻止网络访问 我向JVM添加了-Djava.security.manager=default-Djava.security.policy=…file…选项,安全管理器有效 我通过运行我的测试,查看发生了什么安全冲突,并在策略文件中授予它,进行了几次迭代。但现在,我再也没有收到任何违反安全规定的情况了。相反,这是: ------------------------------------------------------

我正在开发一个Java应用程序。我想在安全受限的JVM中运行它的单元测试,以阻止网络访问

我向JVM添加了
-Djava.security.manager=default-Djava.security.policy=…file…
选项,安全管理器有效

我通过运行我的测试,查看发生了什么安全冲突,并在策略文件中授予它,进行了几次迭代。但现在,我再也没有收到任何违反安全规定的情况了。相反,这是:

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running org.onebusaway.alexa.AuthedSpeechletTest
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.143 sec <<< FAILURE! - in org.onebusaway.alexa.AuthedSpeechletTest
org.onebusaway.alexa.AuthedSpeechletTest  Time elapsed: 0.06 sec  <<< ERROR!
java.lang.NoClassDefFoundError: org.junit.runner.Runner
  at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:364)
  at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:274)
  at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
  at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:161)

Running org.onebusaway.alexa.MainSpeechletEmptyTest
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.001 sec <<< FAILURE! - in org.onebusaway.alexa.MainSpeechletEmptyTest
org.onebusaway.alexa.MainSpeechletEmptyTest  Time elapsed: 0 sec  <<< ERROR!
java.lang.NoClassDefFoundError: org.junit.runner.Runner
  at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:364)
  at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:274)
  at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
  at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:161)


Results :

Tests in error:
  JUnit4Provider.invoke:161->executeTestSet:238->executeWithRerun:274->execute:364 » NoClassDefFound
  JUnit4Provider.invoke:161->executeTestSet:238->executeWithRerun:274->execute:364 » NoClassDefFound

Tests run: 2, Failures: 0, Errors: 2, Skipped: 0
-------------------------------------------------------
T T S T S
-------------------------------------------------------
运行org.onebusaway.alexa.AuthedSpeechletTest

测试运行:1,失败:0,错误:1,跳过:0,运行时间:0.143秒这看起来不像是安全违规。您确定在pom.xml中有JUnit作为依赖项吗?是的,这是分支:。与
master
相比,你说得很对。我在策略文件中尝试了很多排列,唯一可以使用的是java.security.AllPermission。这显然没有什么帮助,但它指出这绝对是一个安全问题。哇,谢谢你花时间研究它。我很感谢您的发现。您可以在pom.xml中使用-Djava.security.debug=all来查看更多调试信息。我现在没主意了。这看起来不像是违反安全规定。您确定在pom.xml中有JUnit作为依赖项吗?是的,这是分支:。与
master
相比,你说得很对。我在策略文件中尝试了很多排列,唯一可以使用的是java.security.AllPermission。这显然没有什么帮助,但它指出这绝对是一个安全问题。哇,谢谢你花时间研究它。我很感谢您的发现。您可以在pom.xml中使用-Djava.security.debug=all来查看更多调试信息。我现在没有主意了。