我正在尝试分析此处的 JAAS 示例程序。(http://www.devx.com/getHelpOn/Article/9915/0/page/4)。我下载了代码并运行它。没有分析它运行得很好。运行该程序的命令如下所示:
java -cp SimpleAction.jar:SimpleAuthz.jar:SimpleLogMod.jar -Djava.security.manager -Djava.security.policy==SimpleJAAS.policy -Djava.security.auth.login.config==SimpleJAAS.config com.gabhart.security.SimpleAuthz
但是当我尝试使用 java 代理运行它(对其进行分析)时,它给了我如下异常:
java.security.AccessControlException: access denied (java.util.PropertyPermission ch.usi.dag.jborat.liblist read)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:374)
at java.security.AccessController.checkPermission(AccessController.java:546)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
at java.lang.SecurityManager.checkPropertyAccess(SecurityManager.java:1285)
at java.lang.System.getProperty(System.java:650)
at ch.usi.dag.jborat.agent.JavaAgent.premain(JavaAgent.java:19)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:323)
at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:338)
但是程序运行良好,分析器不产生输出。我使用的 java profiler 并没有被广泛使用。它正确地描述了其他 java 程序/应用程序,但不是这个。
我使用以下命令与分析器一起运行示例 JAAS 程序:(请注意,它是从脚本文件中复制的)
**java -javaagent:lib/jborat-agent.jar \
-Dch.usi.dag.jborat.exclusionList="conf/exclusion.lst" \
-Dch.usi.dag.jborat.liblist="conf/lib.lst" \
-Dch.usi.dag.jp2.outputFilePrefix="JAAZexample_output" \
-Dch.usi.dag.jborat.instrumentation="ch.usi.dag.jp2.instrument.AddInstrumentation" \
-Dch.usi.dag.jp2.dumpers="ch.usi.dag.jp2.dump.xml.XmlDumper" \
-Dch.usi.dag.jborat.codemergerList="conf/codemerger.lst" \
-Xbootclasspath/p:./lib/Thread_JP2.jar:lib/jborat-runtime.jar:lib/jp2-runtime.jar/jp2.jar/jborat-agent.jar/jborat.jar**:SimpleAction.jar:SimpleAuthz.jar:SimpleLogMod.jar \
-Djava.security.manager -Djava.security.policy==SimpleJAAS.policy \
-Djava.security.auth.login.config==SimpleJAAS.config com.gabhart.security.SimpleAuthz
有人可以告诉我为什么抛出指定的异常以及为什么我的探查器不产生输出吗?
谢谢。