troubles using JAASRealm with SecurityFilter
Matthew Hixson <[email protected]> Tue, 29 Jul 2008 21:13:53 -0700
| Newsgroups | gmane.comp.java.securityfilter.user |
|---|---|
| Message-ID | <[email protected]> |
I have a webapp running in Tomcat 6.0.16 that uses a JAASRealm and a
custom LoginModule to log in our users. Since some of our users are
having some bizarre problem with Tomcat's /j_security_check I thought
I'd give SecurityFilter a try.
I have added the servlet and servlet-mapping to my web.xml and
moved all of the security related stuff from web.xml into
securityfilter-config.xml. Here's a trimmed down version of that file.
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE securityfilter-config PUBLIC
"-//SecurityFilter.org//DTD Security Filter Configuration 2.0//EN"
"http://www.securityfilter.org/dtd/securityfilter-config_2_0.dtd">
<securityfilter-config>
<security-constraint>
<web-resource-collection>
<web-resource-name>Subscriber Area</web-resource-name>
<url-pattern>/members/*</url-pattern>
<http-method>DELETE</http-method>
<http-method>GET</http-method>
<http-method>POST</http-method>
<http-method>PUT</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>user</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/login.jsp?err=1</form-error-page>
<form-default-page>/index.jsp</form-default-page>
</form-login-config>
</login-config>
<security-role>
<description>user</description>
<role-name>user</role-name>
</security-role>
<!-- start with a Catalina realm adapter to wrap the Catalina
realm defined below -->
<realm
className="org.securityfilter.realm.catalina.CatalinaRealmAdapter" />
<realm className="org.apache.catalina.realm.JAASRealm">
<realm-param name="appName" value="MyCustomLoginModule"/>
<realm-param name="userClassNames"
value="com.company.authentication.User"/>
<realm-param name="roleClassNames"
value="com.company.authentication.Role"/>
</realm>
</securityfilter-config>
Right when I start up Tomcat I get the following exception. Anyone
know what I'm doing wrong or know of a workaround?
Thanks,
-M@
Jul 29, 2008 9:03:09 PM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
Jul 29, 2008 9:03:09 PM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8443
Jul 29, 2008 9:03:09 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 677 ms
Jul 29, 2008 9:03:09 PM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
Jul 29, 2008 9:03:09 PM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.16
Jul 29, 2008 9:03:10 PM org.apache.catalina.realm.RealmBase init
SEVERE: Parent not available yet: null:type=Engine
Jul 29, 2008 9:03:10 PM org.apache.catalina.realm.RealmBase init
SEVERE: Can't register null
java.lang.NullPointerException
at org.apache.catalina.realm.RealmBase.init(RealmBase.java:1370)
at org.apache.catalina.realm.RealmBase.start(RealmBase.java:1034)
at org.apache.catalina.realm.JAASRealm.start(JAASRealm.java:549)
at
org
.securityfilter
.realm
.catalina.CatalinaRealmAdapter.setRealm(CatalinaRealmAdapter.java:79)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun
.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
at
sun
.reflect
.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org.securityfilter.config.SecurityConfig.addRealm(SecurityConfig.java:
233)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun
.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
at
sun
.reflect
.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:
252)
at org.apache.commons.digester.SetNextRule.end(SetNextRule.java:256)
at org.apache.commons.digester.Rule.end(Rule.java:276)
at org.apache.commons.digester.Digester.endElement(Digester.java:1058)
at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
Source)
at
org.apache.xerces.impl.dtd.XMLDTDValidator.endNamespaceScope(Unknown
Source)
at
org.apache.xerces.impl.dtd.XMLDTDValidator.handleEndElement(Unknown
Source)
at org.apache.xerces.impl.dtd.XMLDTDValidator.endElement(Unknown
Source)
at
org
.apache
.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown
Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl
$FragmentContentDispatcher.dispatch(Unknown Source)
at
org
.apache
.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.commons.digester.Digester.parse(Digester.java:1548)
at
org
.securityfilter.config.SecurityConfig.loadConfig(SecurityConfig.java:
376)
at org.securityfilter.filter.SecurityFilter.init(SecurityFilter.java:
212)
at
org
.apache
.catalina
.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:
275)
at
org
.apache
.catalina
.core
.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)
at
org
.apache
.catalina
.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
at
org
.apache.catalina.core.StandardContext.filterStart(StandardContext.java:
3709)
at
org.apache.catalina.core.StandardContext.start(StandardContext.java:
4356)
at
org
.apache
.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:
771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:
525)
at
org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:
924)
at
org
.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:
887)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:
492)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1147)
at
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:
311)
at
org
.apache
.catalina
.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:
1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:
1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:
443)
at
org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:
710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun
.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
at
sun
.reflect
.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/