[jcifs] jcifs on J2EE compliant server
Allen, Michael B (RSCH)
Michael_B_Allen at ml.com
Tue Dec 10 14:19:26 EST 2002
> -----Original Message-----
> From: Tieu, Kiet L [SMTP:KietLinh.Tieu at team.telstra.com]
> Sent: Monday, December 09, 2002 8:32 PM
> To: jcifs at lists.samba.org
> Subject: [jcifs] jcifs on J2EE compliant server
>
> Hi,
>
> SHORT:
> Has anyone attempted to use jcifs successfully on a J2EE 1.3 compliant server?
> Is jcifs J2EE 1.3 compliant?
>
Unfortunatly I'm not familiar with the various standards.
> 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.
>
We have received a few complaints about errors accessing System properties. This
creates a fundamental problem however because jCIFS must install the SMB URL
protocol handler which last I checked required modifying the java.protocol.handler.pkgs
System property or installing a URLStreamHandlerFactory which can be done only
once in the lifetime of the VM.
> 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
>
I haven't a clue as to why this would happen. I am not the export on Java containers
around here.
> 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