Hi Rainer, I tried the grant syntax you used and saw the same problem. I also tried various combinations of wildcarding and specifying the JARs individually, to no avail.
The debug flag -Djava.security.debug=policy should be helpful here, but it is not. Tomcat's WebappClassLoader has a toString implementation that triggers a security check. The policy trace then triggers the toString implementation, causing an infinite recursion. Given that Tomcat appears to be doing the class loading, you may want to ask on the Tomcat list. Stu ---------------------------------------------------------- Stuart Halloway : staff.develop.com/halloway DevelopMentor : www.develop.com Essential Java : www.develop.com/courses/essjava ---------------------------------------------------------- -----Original Message----- From: Baernreuther Rainer [mailto:rainer.baernreuther@;siemens.com] Sent: Monday, November 04, 2002 9:11 AM To: '[EMAIL PROTECTED]' Subject: Security Manager and Axis Hi all, I installed Axis V1.0 on my Tomcat 4.0.1 server by simply copying the axis directory into my webapps directory. If I start Tomcat without a Security Manager everything works fine. The trouble begins when the Security Manager comes into play. During the starting process of Tomcat I get two error messages from the Security Manager which I cannot explain. The first points to missing RuntimePermission for requesting Class Loaders: access: access denied (java.lang.RuntimePermission getClassLoader) java.lang.Exception: Stack trace at java.lang.Thread.dumpStack(Thread.java:1071) at java.security.AccessControlContext.checkPermission(AccessControlContext. java :259) at java.security.AccessController.checkPermission(AccessController.java:401 ) at java.lang.SecurityManager.checkPermission(SecurityManager.java:542) at java.lang.ClassLoader.getSystemClassLoader(ClassLoader.java:1038) at org.apache.commons.discovery.jdk.JDK12Hooks.getSystemClassLoader(JDK12Ho oks. java:114) at org.apache.commons.discovery.resource.ClassLoaders.getLibLoaders(ClassLo ader s.java:176) at org.apache.commons.discovery.tools.DiscoverClass.find(DiscoverClass.java :355 ) at org.apache.commons.discovery.tools.DiscoverClass.newInstance(DiscoverCla ss.j ava:579) at org.apache.commons.discovery.tools.DiscoverSingleton.find(DiscoverSingle ton. java:418) at org.apache.commons.discovery.tools.DiscoverSingleton.find(DiscoverSingle ton. java:378) at org.apache.axis.components.logger.LogFactory$1.run(LogFactory.java:84) at java.security.AccessController.doPrivileged(Native Method) at org.apache.axis.components.logger.LogFactory.getLogFactory(LogFactory.ja va:8 0) at org.apache.axis.components.logger.LogFactory.<clinit>(LogFactory.java:72 ) at org.apache.axis.transport.http.AxisServlet.<clinit>(AxisServlet.java:101 ) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:130) at org.apache.axis.transport.http.AxisServletBase.class$(AxisServletBase.ja va:8 7) at org.apache.axis.transport.http.AxisServletBase.<clinit>(AxisServletBase. java :94) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorA cces sorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingCons truc torAccessorImpl.java:27 ) at java.lang.reflect.Constructor.newInstance(Constructor.java:274) at java.lang.Class.newInstance0(Class.java:296) at java.lang.Class.newInstance(Class.java:249) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:820) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.j ava: 3267) at org.apache.catalina.core.StandardContext.start(StandardContext.java:3384 ) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:785) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:454) at org.apache.catalina.core.StandardHost.install(StandardHost.java:712) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:599) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:777) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:46 3) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSu ppor t.java:155) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1131) at org.apache.catalina.core.StandardHost.start(StandardHost.java:612) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1123) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:307) at org.apache.catalina.core.StandardService.start(StandardService.java:388) at org.apache.catalina.core.StandardServer.start(StandardServer.java:505) at org.apache.catalina.startup.Catalina.start(Catalina.java:776) at org.apache.catalina.startup.Catalina.execute(Catalina.java:681) at org.apache.catalina.startup.Catalina.process(Catalina.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav a:39 ) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor Impl .java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:243) The second failure points to a missing property permission: access: access denied (java.util.PropertyPermission org.apache.commons.discovery.log.level read) java.lang.Exception: Stack trace at java.lang.Thread.dumpStack(Thread.java:1071) at java.security.AccessControlContext.checkPermission(AccessControlContext. java :259) at java.security.AccessController.checkPermission(AccessController.java:401 ) at java.lang.SecurityManager.checkPermission(SecurityManager.java:542) at java.lang.SecurityManager.checkPropertyAccess(SecurityManager.java:1291) at java.lang.System.getProperty(System.java:572) at org.apache.commons.discovery.log.SimpleLog.<clinit>(SimpleLog.java:155) at org.apache.commons.discovery.log.DiscoveryLogFactory._newLog(DiscoveryLo gFac tory.java:142) at org.apache.commons.discovery.log.DiscoveryLogFactory.<clinit>(DiscoveryL ogFa ctory.java:105) at org.apache.commons.discovery.resource.DiscoverResources.<clinit>(Discove rRes ources.java:82) at org.apache.commons.discovery.tools.ResourceUtils.getResource(ResourceUti ls.j ava:122) at org.apache.commons.discovery.tools.ResourceUtils.loadProperties(Resource Util s.java:175) at org.apache.commons.discovery.tools.PropertiesHolder.getProperties(Proper ties Holder.java:102) at org.apache.commons.discovery.tools.DiscoverClass.find(DiscoverClass.java :360 ) at org.apache.commons.discovery.tools.DiscoverClass.newInstance(DiscoverCla ss.j ava:579) at org.apache.commons.discovery.tools.DiscoverSingleton.find(DiscoverSingle ton. java:418) at org.apache.commons.discovery.tools.DiscoverSingleton.find(DiscoverSingle ton. java:378) at org.apache.axis.components.logger.LogFactory$1.run(LogFactory.java:84) at java.security.AccessController.doPrivileged(Native Method) at org.apache.axis.components.logger.LogFactory.getLogFactory(LogFactory.ja va:8 0) at org.apache.axis.components.logger.LogFactory.<clinit>(LogFactory.java:72 ) at org.apache.axis.transport.http.AxisServlet.<clinit>(AxisServlet.java:101 ) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:130) at org.apache.axis.transport.http.AxisServletBase.class$(AxisServletBase.ja va:8 7) at org.apache.axis.transport.http.AxisServletBase.<clinit>(AxisServletBase. java :94) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorA cces sorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingCons truc torAccessorImpl.java:27 ) at java.lang.reflect.Constructor.newInstance(Constructor.java:274) at java.lang.Class.newInstance0(Class.java:296) at java.lang.Class.newInstance(Class.java:249) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:820) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.j ava: 3267) at org.apache.catalina.core.StandardContext.start(StandardContext.java:3384 ) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:785) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:454) at org.apache.catalina.core.StandardHost.install(StandardHost.java:712) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:599) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:777) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:46 3) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSu ppor t.java:155) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1131) at org.apache.catalina.core.StandardHost.start(StandardHost.java:612) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1123) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:307) at org.apache.catalina.core.StandardService.start(StandardService.java:388) at org.apache.catalina.core.StandardServer.start(StandardServer.java:505) at org.apache.catalina.startup.Catalina.start(Catalina.java:776) at org.apache.catalina.startup.Catalina.execute(Catalina.java:681) at org.apache.catalina.startup.Catalina.process(Catalina.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav a:39 ) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor Impl .java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:243) I have already added the following entry to the property file catalina.policy: grant codeBase "file:${catalina.home}/webapps/axis/-" { permission java.security.AllPermission; }; >From my point of view all the class files mentioned in the above stack traces are covered by the policy file and all class files should have AllPermission. Can anybody explain to me what I'm doing wrong. Are there still other jar files that have to be added to the policy file? Thanks for your help in advance. Rainer