[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