[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