Menu

SecurityFilter with JndiRealm

Help
R. Bhadu
2008-01-14
2013-04-15
  • R. Bhadu

    R. Bhadu - 2008-01-14

    Hi,
    I am trying to use security filter to do authentication from ldap server using JndiRealm.
    I am using Tomcat 5.5.17. For the same here is my securityfilter-config.xml

    <?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>Protected Area</web-resource-name>

    <url-pattern>*.action</url-pattern>

    </web-resource-collection>
    <auth-constraint>

    <role-name>administrator</role-name>

    </auth-constraint>
    </security-constraint>

    <login-config>
    <auth-method>FORM</auth-method>
    <form-login-config>
    <form-login-page>/index.jsp</form-login-page>
    <form-error-page>/index.jsp</form-error-page>
    <form-default-page>/login/Login.action</form-default-page>
    </form-login-config>
    </login-config>

    <realm className="org.securityfilter.realm.catalina.CatalinaRealmAdapter" />

    <realm className="org.apache.catalina.realm.JNDIRealm">

    <realm-param name="connectionName" value="cn=Manager,dc=my-company,dc=com" />
    <realm-param name="connectionPassword" value="secret" />
    <realm-param name="connectionURL" value="ldap://localhost:389" />
    <realm-param name="roleBase" value="ou=groups,dc=my-company,dc=com" />
    <realm-param name="roleName" value="cn" />
    <realm-param name="roleSearch" value="(uniqueMember={0})" />
    <realm-param name="roleSubtree" value="true" />
    <realm-param name="userPattern" value="cn={0},ou=people,dc=my-company,dc=com" />
    </realm> 

    </securityfilter-config>

    I have added required jars in lib of my application(catlina.jar,catlina-optional.jar,tomcat-util.jar etc) But when i tried to access my application's protected resource, I m getting null pointer error b'coz in RealBase's init() method container object is null.

    Please give me your suggesion so that i can go in right direction.

    Thanx in advance.
    R Bhadu

     
    • Chris Maloof

      Chris Maloof - 2009-06-10

      I believe I'm having the same problem with Tomcat 6.

      INFO: Starting service Catalina
      Jun 10, 2009 4:13:20 PM org.apache.catalina.core.StandardEngine start
      INFO: Starting Servlet Engine: Apache Tomcat/6.0.18
      Jun 10, 2009 4:13:23 PM org.apache.catalina.realm.RealmBase init
      SEVERE: Parent not available yet: null:type=Engine
      Jun 10, 2009 4:13:23 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.JNDIRealm.start(JNDIRealm.java:1707)
          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:597)
          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:597)
          at org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:216)
          at org.apache.commons.digester.SetNextRule.end(SetNextRule.java:217)
          at org.apache.commons.digester.Rule.end(Rule.java:253)
          at org.apache.commons.digester.Digester.endElement(Digester.java:1222)
          at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:601)
          at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.endNamespaceScope(XMLDTDValidator.java:2077)
          at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleEndElement(XMLDTDValidator.java:2028)
          at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.endElement(XMLDTDValidator.java:901)
          at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1774)
          at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2930)
          at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
          at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
          at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
          at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
          at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
          at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
          at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
          at org.apache.commons.digester.Digester.parse(Digester.java:1745)
          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:4363)
          at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
          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:597)
          at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
          at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
      unable to parse input: java.lang.NullPointerException

       
    • Chris Maloof

      Chris Maloof - 2009-06-10

      Fixed when I added catalina.jar and codecs.jar to the project.

       

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.