Hi Stuart,
I replaced the getSpecialGroups method in LDAPHierachicalAuthentication.java
with the code you sent.  I then ran "mvn package" followed by "ant update"
and "ant init_configs".  After restarting Tomcat, I was able to login via
LDAP, but not with a local password.  Here several lines dspace.log,
followed by the Java stacktrace.

Eric

2008-09-18 15:08:02,348 INFO  org.dspace.authenticate.PasswordAuthentication
@
anonymous:session_id=F1FB96AF6FA3464C393A3366621534A4:ip_addr=139.147.66.108:authenticate:attempting
password auth of user=
2008-09-18 15:08:02,349 INFO
org.dspace.authenticate.LDAPHierarchicalAuthentication @
anonymous:session_id=F1FB96AF6FA3464C393A3366621534A4:ip_addr=139.147.66.108:auth:attempting
trivial auth of user=
2008-09-18 15:08:02,354 INFO
org.dspace.authenticate.LDAPHierarchicalAuthentication @
anonymous:session_id=F1FB96AF6FA3464C393A3366621534A4:ip_addr=139.147.66.108:failed_login:no
DN found for user
2008-09-18 15:08:02,354 INFO  org.dspace.app.xmlui.utils.AuthenticationUtil
@
anonymous:session_id=F1FB96AF6FA3464C393A3366621534A4:ip_addr=139.147.66.108:failed_login:email=,
realm=null, result=2
2008-09-18 15:08:13,262 INFO  org.dspace.authenticate.PasswordAuthentication
@
anonymous:session_id=F1FB96AF6FA3464C393A3366621534A4:ip_addr=139.147.66.108:authenticate:attempting
password auth of
[EMAIL PROTECTED]
2008-09-18 15:08:13,263 INFO  org.dspace.authenticate.PasswordAuthentication
@ [EMAIL PROTECTED]:
session_id=F1FB96AF6FA3464C393A3366621534A4:ip_addr=139.147.66.108:
authenticate:type=PasswordAuthentication
2008-09-18 15:08:13,263 INFO  org.dspace.app.xmlui.utils.AuthenticationUtil
@ [EMAIL PROTECTED]:
session_id=F1FB96AF6FA3464C393A3366621534A4:ip_addr=139.147.66.108:
login:type=explicit

java.lang.NullPointerException
        at 
org.dspace.authenticate.LDAPHierarchicalAuthentication.getSpecialGroups(LDAPHierarchicalAuthentication.java:144)
        at 
org.dspace.authenticate.AuthenticationManager.getSpecialGroups(AuthenticationManager.java:308)
        at 
org.dspace.app.xmlui.utils.AuthenticationUtil.logIn(AuthenticationUtil.java:222)
        at 
org.dspace.app.xmlui.utils.AuthenticationUtil.Authenticate(AuthenticationUtil.java:147)
        at 
org.dspace.app.xmlui.aspect.eperson.AuthenticateAction.act(AuthenticateAction.java:109)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(ActTypeNode.java:124)
        at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:46)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:130)
        at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:142)
        at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:92)
        at 
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:234)
        at 
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.buildPipeline(ConcreteTreeProcessor.java:192)
        at 
org.apache.cocoon.components.treeprocessor.TreeProcessor.buildPipeline(TreeProcessor.java:265)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:110)
        at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.SelectNode.invoke(SelectNode.java:102)
        at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:46)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.MatchNode.invoke(MatchNode.java:107)
        at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:142)
        at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:92)
        at 
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:234)
        at 
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.buildPipeline(ConcreteTreeProcessor.java:192)
        at 
org.apache.cocoon.components.treeprocessor.TreeProcessor.buildPipeline(TreeProcessor.java:265)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:110)
        at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:46)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:130)
        at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:142)
        at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:92)
        at 
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:234)
        at 
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.buildPipeline(ConcreteTreeProcessor.java:192)
        at 
org.apache.cocoon.components.treeprocessor.TreeProcessor.buildPipeline(TreeProcessor.java:265)
        at 
org.apache.cocoon.components.source.impl.SitemapSource.init(SitemapSource.java:331)
        at 
org.apache.cocoon.components.source.impl.SitemapSource.<init>(SitemapSource.java:213)
        at 
org.apache.cocoon.components.source.impl.SitemapSourceFactory.getSource(SitemapSourceFactory.java:64)
        at 
org.apache.excalibur.source.impl.SourceResolverImpl.resolveURI(SourceResolverImpl.java:208)
        at 
org.apache.cocoon.components.CocoonComponentManager.resolveURI(CocoonComponentManager.java:541)
        at 
org.apache.cocoon.environment.AbstractEnvironment.resolveURI(AbstractEnvironment.java:552)
        at 
org.apache.cocoon.environment.AbstractEnvironment.resolveURI(AbstractEnvironment.java:539)
        at 
org.apache.cocoon.environment.wrapper.MutableEnvironmentFacade.resolveURI(MutableEnvironmentFacade.java:298)
        at 
org.apache.cocoon.generation.FileGenerator.setup(FileGenerator.java:78)
        at 
org.dspace.app.xmlui.cocoon.AspectGenerator.setup(AspectGenerator.java:112)
        at 
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.setupPipeline(AbstractProcessingPipeline.java:384)
        at 
org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupPipeline(AbstractCachingProcessingPipeline.java:720)
        at 
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:500)
        at 
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.prepareInternal(AbstractProcessingPipeline.java:514)
        at 
org.apache.cocoon.components.source.impl.SitemapSource.init(SitemapSource.java:341)
        at 
org.apache.cocoon.components.source.impl.SitemapSource.<init>(SitemapSource.java:213)
        at 
org.apache.cocoon.components.source.impl.SitemapSourceFactory.getSource(SitemapSourceFactory.java:64)
        at 
org.apache.excalibur.source.impl.SourceResolverImpl.resolveURI(SourceResolverImpl.java:208)
        at 
org.apache.cocoon.components.CocoonComponentManager.resolveURI(CocoonComponentManager.java:541)
        at 
org.apache.cocoon.components.CocoonComponentManager.resolveURI(CocoonComponentManager.java:541)
        at 
org.apache.cocoon.components.CocoonComponentManager.resolveURI(CocoonComponentManager.java:541)
        at 
org.apache.cocoon.components.CocoonComponentManager.resolveURI(CocoonComponentManager.java:541)
        at 
org.apache.cocoon.environment.AbstractEnvironment.resolveURI(AbstractEnvironment.java:552)
        at 
org.apache.cocoon.environment.AbstractEnvironment.resolveURI(AbstractEnvironment.java:539)
        at 
org.apache.cocoon.environment.wrapper.MutableEnvironmentFacade.resolveURI(MutableEnvironmentFacade.java:298)
        at 
org.apache.cocoon.generation.FileGenerator.setup(FileGenerator.java:78)
        at 
org.dspace.app.xmlui.cocoon.AspectGenerator.setup(AspectGenerator.java:112)
        at 
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.setupPipeline(AbstractProcessingPipeline.java:384)
        at 
org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupPipeline(AbstractCachingProcessingPipeline.java:720)
        at 
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:500)
        at 
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.prepareInternal(AbstractProcessingPipeline.java:514)
        at 
org.apache.cocoon.components.source.impl.SitemapSource.init(SitemapSource.java:341)
        at 
org.apache.cocoon.components.source.impl.SitemapSource.<init>(SitemapSource.java:213)
        at 
org.apache.cocoon.components.source.impl.SitemapSourceFactory.getSource(SitemapSourceFactory.java:64)
        at 
org.apache.excalibur.source.impl.SourceResolverImpl.resolveURI(SourceResolverImpl.java:208)
        at 
org.apache.cocoon.components.CocoonComponentManager.resolveURI(CocoonComponentManager.java:541)
        at 
org.apache.cocoon.environment.AbstractEnvironment.resolveURI(AbstractEnvironment.java:552)
        at 
org.apache.cocoon.environment.AbstractEnvironment.resolveURI(AbstractEnvironment.java:539)
        at 
org.apache.cocoon.generation.FileGenerator.setup(FileGenerator.java:78)
        at 
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.setupPipeline(AbstractProcessingPipeline.java:384)
        at 
org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupPipeline(AbstractCachingProcessingPipeline.java:720)
        at 
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:500)
        at 
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:452)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.SerializeNode.invoke(SerializeNode.java:120)
        at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:46)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:130)
        at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:142)
        at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:92)
        at 
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:234)
        at 
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:176)
        at 
org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:252)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:117)
        at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:46)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.MatchNode.invoke(MatchNode.java:107)
        at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:142)
        at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:92)
        at 
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:234)
        at 
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:176)
        at 
org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:252)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:117)
        at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:142)
        at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:92)
        at 
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:234)
        at 
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:176)
        at 
org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:252)
        at org.apache.cocoon.Cocoon.process(Cocoon.java:686)
        at 
org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1153)
        at 
org.dspace.app.xmlui.cocoon.DSpaceCocoonServlet.service(DSpaceCocoonServlet.java:245)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
        at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
        at 
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
        at 
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
        at 
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
        at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
        at java.lang.Thread.run(Thread.java:619)






On Thu, Sep 18, 2008 at 2:43 PM, Stuart Lewis <[EMAIL PROTECTED]> wrote:

> Hi Eric,
>
> > I just patched a fresh install with your latest LDAP patch (along with
> patch
> > 2057231).  LDAP works fine, but now password authentication fails. I
> noticed
> > that your patch replaced:
> >
> > plugin.sequence.org.dspace.authenticate.AuthenticationMethod = \
> >          org.dspace.authenticate.PasswordAuthentication, \
> >          org.dspace.authenticate.LDAPHierarchicalAuthentication, \
> >          org.dspace.authenticate.X509Authentication
> >
> > with:
> >
> > plugin.sequence.org.dspace.authenticate.AuthenticationMethod = \
> >          org.dspace.authenticate.LDAPHierarchicalAuthentication
>
> Yes - that was just an example for how to use only hierarchical LDAP authN,
> but as you found you can still use the stackable system as you wish.
>
> > I changed it back and still got the same error (see Java stacktrace
> below).
> >
> > java.lang.NullPointerException
> > at
> >
> org.dspace.authenticate.LDAPHierarchicalAuthentication.getSpecialGroups(LDAPHi
> > erarchicalAuthentication.java:143)
> > at
> >
> org.dspace.authenticate.AuthenticationManager.getSpecialGroups(AuthenticationM
> > anager.java:308)
>
> Hmmm, weird. It seems to be suggesting that the context is null. Try
> replacing the getSpecialGroups method in
> HierarchicalLDAPAuthentication.java
> with:
>
>    public int[] getSpecialGroups(Context context, HttpServletRequest
> request)
>    {
>        // Prevents anonymous users from being added to this group, and the
> second check
>        // ensures they are LDAP users
>        if ((context != null) &&
>            (context.getCurrentUser() != null) &&
>            (!context.getCurrentUser().getNetid().equals("")))
>        {
>            if (ldapGroup == null)
>            { // Oops - the group isn't there.
>                log.warn(LogManager.getHeader(context,
>                        "ldap_specialgroup",
>                        "Group defined in ldap.login.specialgroup does not
> exist"));
>                return new int[0];
>            } else
>            {
>                return new int[] { ldapGroup.getID() };
>            }
>        }
>        return new int[0];
>     }
>
> Thanks,
>
>
> Stuart
> _________________________________________________________________
>
> Gwasanaethau Gwybodaeth                      Information Services
> Prifysgol Aberystwyth                      Aberystwyth University
>
>            E-bost / E-mail: [EMAIL PROTECTED]
>                 Ffon / Tel: (01970) 622860
> _________________________________________________________________
>
>
-------------------------------------------------------------------------
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=/
_______________________________________________
DSpace-tech mailing list
DSpace-tech@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dspace-tech

Reply via email to