8 Replies Latest reply on Jun 19, 2008 7:42 PM by don41382

    Authenticator component missing

    deepadatar.deepa.datar.yahoo.com

      I have written a ldap login module using seam. I followed the steps as mentioned in this link http://www.seamframework.org/Documentation/ConfigureSeamWithOpenLDAP


      I am getting this exception when I am trying to access the login page:


      
      00:12:08,464 DEBUG [Component] seam component not found: authenticator
      
      00:12:08,464 DEBUG [Component] seam component not found: org.jboss.seam.core.authenticator
      
      00:12:08,464 DEBUG [Component] seam component not found: org.jboss.seam.transaction.authenticator
      
      00:12:08,464 DEBUG [Component] seam component not found: org.jboss.seam.framework.authenticator
      
      00:12:08,464 DEBUG [Component] seam component not found: org.jboss.seam.web.authenticator
      
      00:12:08,464 DEBUG [Component] seam component not found: org.jboss.seam.faces.authenticator
      
      00:12:08,464 DEBUG [Component] seam component not found: org.jboss.seam.international.authenticator
      
      00:12:08,464 DEBUG [Component] seam component not found: org.jboss.seam.theme.authenticator
      
      00:12:08,464 DEBUG [Component] seam component not found: org.jboss.seam.pageflow.authenticator
      
      00:12:08,464 DEBUG [Component] seam component not found: org.jboss.seam.bpm.authenticator
      
      00:12:08,464 DEBUG [Component] seam component not found: org.jboss.seam.jms.authenticator
      
      00:12:08,464 DEBUG [Component] seam component not found: org.jboss.seam.mail.authenticator
      
      00:12:08,464 DEBUG [Component] seam component not found: org.jboss.seam.security.authenticator
      
      00:12:08,464 DEBUG [Component] seam component not found: org.jboss.seam.captcha.authenticator
      
      00:12:08,464 DEBUG [Component] seam component not found: org.jboss.seam.core.authenticator
      
      00:12:08,464 DEBUG [Component] seam component not found: org.jboss.seam.transaction.authenticator
      
      00:12:08,464 DEBUG [Component] seam component not found: org.jboss.seam.framework.authenticator
      
      00:12:08,464 DEBUG [Component] seam component not found: org.jboss.seam.web.authenticator
      
      00:12:08,464 DEBUG [Component] seam component not found: org.jboss.seam.faces.authenticator
      
      00:12:08,464 DEBUG [Component] seam component not found: org.jboss.seam.international.authenticator
      
      00:12:08,464 DEBUG [Component] seam component not found: org.jboss.seam.theme.authenticator
      
      00:12:08,464 DEBUG [Component] seam component not found: org.jboss.seam.pageflow.authenticator
      
      00:12:08,464 DEBUG [Component] seam component not found: org.jboss.seam.bpm.authenticator
      
      00:12:08,464 DEBUG [Component] seam component not found: org.jboss.seam.jms.authenticator
      
      00:12:08,464 DEBUG [Component] seam component not found: org.jboss.seam.mail.authenticator
      
      00:12:08,464 DEBUG [Component] seam component not found: org.jboss.seam.security.authenticator
      
      00:12:08,464 DEBUG [Component] seam component not found: org.jboss.seam.captcha.authenticator
      
      00:12:08,479 ERROR [SeamPhaseListener] uncaught exception
      
      javax.el.PropertyNotFoundException: Target Unreachable, identifier 'authenticator' resolved to null
      
           at org.jboss.el.parser.AstValue.getTarget(AstValue.java:38)
      
           at org.jboss.el.parser.AstValue.invoke(AstValue.java:95)
      
           at org.jboss.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
      
           at org.jboss.seam.core.Expressions$2.invoke(Expressions.java:173)
      
           at org.jboss.seam.navigation.Page.preRender(Page.java:264)
      
           at org.jboss.seam.navigation.Pages.preRender(Pages.java:309)
      
           at org.jboss.seam.jsf.SeamPhaseListener.preRenderPage(SeamPhaseListener.java:549)
      
           at org.jboss.seam.jsf.SeamPhaseListener.beforeRenderResponse(SeamPhaseListener.java:460)
      
           at org.jboss.seam.jsf.SeamPhaseListener.beforeServletPhase(SeamPhaseListener.java:144)
      
           at org.jboss.seam.jsf.SeamPhaseListener.beforePhase(SeamPhaseListener.java:114)
      
           at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:222)
      
           at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
      
           at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
      
           at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
      
           at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      
           at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
      
           at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85)
      
           at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
      
           at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
      
           at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
      
           at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
      
           at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
      
           at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
      
           at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:276)
      
           at org.ajax4jsf.Filter.doFilter(Filter.java:175)
      
           at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:60)
      
           at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
      
           at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
      
           at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
      
           at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
      
           at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      
           at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      
           at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
      
           at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      
           at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      
           at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
      
           at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
      
           at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
      
           at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
      
           at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
      
           at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
      
           at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
      
           at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
      
           at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
      
           at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
      
           at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
      
           at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
      
           at java.lang.Thread.run(Thread.java:595)
      
      



      Can anyone suggest whats wrong?


      Thanks

        • 1. Re: Authenticator component missing
          deepadatar.deepa.datar.yahoo.com

          I made the following settings:


          In components.xml:


          
              <security:identity 
          
                   authenticate-method="# authenticator.authenticate}" 
          
                remember-me="true" 
          
                jaas-config-name="NxJ_JAAS_LDAP"/>
          
          



          In login-config.xml


          
          <policy>
          
                  <application-policy name="openLDAPAuth">
          
                          <authentication>
          
                                  <login-module
          
                                          code="org.jboss.security.auth.spi.LdapExtLoginModule"
          
                                          flag="required">
          
                                          <module-option name="java.naming.factory.initial">com.sun.jndi.ldap.LdapCtxFactory</module-option>
          
                                          <module-option name="java.naming.provider.url">ldap://ldap.host.com:389/</module-option>
          
                                          <module-option name="java.naming.security.authentication">simple</module-option>
          
                                          <module-option name="bindDN">cn=Rootuser,dc=domain</module-option>
          
                                          <module-option name="bindCredential">passwd</module-option>
          
                                          <module-option name="baseCtxDN">ou=People,dc=domain</module-option>
          
                                          <module-option name="baseFilter">(uid={0})</module-option>
          
          
                                          <module-option name="rolesCtxDN">ou=Roles,ou=apps,dc=domain</module-option>
          
                                          <module-option name="roleFilter">(member={1})</module-option>
          
                                          <module-option name="roleAttributeID">cn</module-option>
          
                                  </login-module>
          
                          </authentication>
          
                  </application-policy>
          
          </policy>
          
          
          



          Does anyone have any clue?


          It's urgent!


          Thanks


          • 2. Re: Authenticator component missing
            shane.bryzak

            The authenticate-method and jaas-config-name attributes are mutually exclusive, i.e. you can only have one or the other, not both.  And besides that, your EL expression is malformed also - it should be:



            authenticate-method=#{authenticator.authenticate}


            • 3. Re: Authenticator component missing
              shane.bryzak

              Sorry, forgot the quotes.. it should be:



              authenticate-method="#{authenticator.authenticate}"


              • 4. Re: Authenticator component missing
                deepadatar.deepa.datar.yahoo.com

                Hi Shane,


                I made a typo when I was posting the message.


                1. The authenticate-method is correct.


                2. Since you mentioned that authenticate-method and jaas-config-name are mutually-exclusive, I changed it to.


                
                <security:identity 
                
                          remember-me="true" 
                
                           jaas-config-name="NxJ_JAAS_LDAP"/>
                
                



                But still I have the same error.


                Thanks

                • 5. Re: Authenticator component missing
                  shane.bryzak

                  I can't believe you get the same error, i.e. Target Unreachable, identifier 'authenticator' resolved to null when you've removed the authenticate-method attribute.  Where is the 'authenticator' reference coming from otherwise?

                  • 6. Re: Authenticator component missing
                    deepadatar.deepa.datar.yahoo.com

                    Hi Shane


                    This is what I have in pages.xml:


                    
                    <page view-id="/login.html" action="#{authenticator.login}">
                    
                              <navigation from-action="#{authenticator.login}">
                    
                                   <redirect view-id="/pages/index.jsp"/>
                    
                              </navigation>
                    
                    </page>
                    
                    



                    Thanks

                    • 7. Re: Authenticator component missing
                      shane.bryzak

                      You need to remove the reference to authenticator from here.  If you really want to attempt authentication when the user first navigates to the login.html page, then the action should be #{identity.login} instead.

                      • 8. Re: Authenticator component missing
                        don41382

                        I had the same problem. Jboss couldn't find any identifier and I it was a clean create-project from seam-gen. My mistake was:


                        eclipse: JDK 1.6
                        jboss: running with JDK 1.5


                        I switched in eclipse to JDK 1.5 and everything just worked fine!


                        I hope, I can help somebody not spending two hours on this (like I did)