[jcifs] jcifs on J2EE compliant server
Tieu, Kiet L
KietLinh.Tieu at team.telstra.com
Tue Dec 10 12:32:07 EST 2002
Hi,
SHORT:
Has anyone attempted to use jcifs successfully on a J2EE 1.3 compliant server?
Is jcifs J2EE 1.3 compliant?
LONG:
We attempted to implement the jcifs filter (NtlmHttpFilter) on Sun One Application Server V7, but encountered several problems.
Firstly, we noticed during initialisation the jcifs.Config attempts to get the system properties via System.getProperties(). However, the J2EE 1.3 spec disallows this. Following is the stack trace.
java.lang.ExceptionInInitializerError
at jcifs.http.NtlmHttpFilter.init(NtlmHttpFilter.java:58)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:262)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:322)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:120)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3144)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3579)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1123)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:638)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1123)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:345)
at org.apache.catalina.startup.Embedded.start(Embedded.java:957)
at com.iplanet.ias.web.WebContainer.start(WebContainer.java:426)
at com.iplanet.ias.web.WebContainer.startInstance(WebContainer.java:514)
at com.iplanet.ias.server.J2EERunner.confPostInit(J2EERunner.java:170)
Caused by: java.security.AccessControlException: access denied (java.util.PropertyPermission * read,write)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:270)
at java.security.AccessController.checkPermission(AccessController.java:401)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:542)
at java.lang.SecurityManager.checkPropertiesAccess(SecurityManager.java:1259)
at java.lang.System.getProperties(System.java:500)
at jcifs.Config.<clinit>(Config.java:45)
... 14 more
Reluctantly, we got around this by modifying the server.policy file from
permission java.util.PropertyPermission "*", "read";
to
permission java.util.PropertyPermission "*", "read, write";
With this modification, the filter initialises without any errors. However, when we try access a "protected" page now, we are presented with the following error:
[10/Dec/2002:12:20:18] SEVERE ( 1288): WEB5003: Exception in handleAfterEvent.
com.sun.enterprise.InvocationException
at com.sun.enterprise.util.InvocationManagerImpl.postInvoke(InvocationManagerImpl.java:159)
at com.sun.web.server.J2EEInstanceListener.handleAfterEvent(J2EEInstanceListener.java:201)
at com.sun.web.server.J2EEInstanceListener.instanceEvent(J2EEInstanceListener.java:86)
at org.apache.catalina.util.InstanceSupport.fireInstanceEvent(InstanceSupport.java:262)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:228)
at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:98)
at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:176)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:172)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:265)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:505)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:212)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:505)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:203)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:505)
at com.iplanet.ias.web.connector.nsapi.NSAPIProcessor.process(NSAPIProcessor.java:157)
at com.iplanet.ias.web.WebContainer.service(WebContainer.java:598)
[10/Dec/2002:12:20:18] SEVERE ( 1288): StandardWrapperValve[default]: Servlet.service() for servlet default threw exception
java.lang.ClassCastException: jcifs.smb.NtlmPasswordAuthentication
at com.sun.web.server.J2EEInstanceListener.handleBeforeEvent(J2EEInstanceListener.java:142)
at com.sun.web.server.J2EEInstanceListener.instanceEvent(J2EEInstanceListener.java:80)
at org.apache.catalina.util.InstanceSupport.fireInstanceEvent(InstanceSupport.java:342)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:98)
at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:176)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:172)
at jcifs.http.NtlmHttpFilter.doFilter(NtlmHttpFilter.java:101)
at jcifs.http.TRLNtlmHttpFilter.doFilter(TRLNtlmHttpFilter.java:22)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:98)
at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:176)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:172)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValvejava:265)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:505)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:212)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:505)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:203)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:505)
at com.iplanet.ias.web.connector.nsapi.NSAPIProcessor.process(NSAPIProcessor.java:157)
at com.iplanet.ias.web.WebContainer.service(WebContainer.java:598)
Any suggestions or solutions?
NOTE: The same war file was deployed on a Tomcat 4.0 server and it runs without any problems.
Regards,
Lyn
More information about the jcifs
mailing list