Hi Stuart -

Thanks for clarifying the rebuild and redeploy.

Unfortunately, still no luck.

I think I'll just start working on populating the e-mail field in LDAP.

Thanks for all your help!  I really appreciate it!

Max
--
Max McGrath
Asst. Network Admin/Systems Specialist
Carthage College
262-552-5512
mmcgr...@carthage.edu


On Mon, Apr 26, 2010 at 4:02 PM, Stuart Lewis <s.le...@auckland.ac.nz>wrote:

> Hi Max,
>
> After making the change you need to re-build tomcat, and redeploy it. You
> can do this by following steps 7, 8, and 9 in the installation guide:
>
>  - http://www.dspace.org/1_6_0Documentation/ch03.html#N108B6
>
> But at step 8, as this is not a new installation, you need to run 'ant
> update' instead of 'ant fresh_install'.
>
> Thanks,
>
>
> Stuart Lewis
> IT Innovations Analyst and Developer
> Te Tumu Herenga The University of Auckland Library
> Auckland Mail Centre, Private Bag 92019, Auckland 1142, New Zealand
> Ph: +64 (0)9 373 7599 x81928
>
>
> On 27/04/2010, at 8:57 AM, Max McGrath wrote:
>
> > Stuart -
> >
> > I made the change and then restarted Tomcat and it still is not working
> for people that do not have their e-mail address in LDAP.
> >
> > Should I have done more than just restarting Tomcat?
> >
> > Thanks for all the help!
> > --
> > Max McGrath
> > Asst. Network Admin/Systems Specialist
> > Carthage College
> > 262-552-5512
> > mmcgr...@carthage.edu
> >
> >
> > On Mon, Apr 26, 2010 at 3:46 PM, Stuart Lewis <s.le...@auckland.ac.nz>
> wrote:
> > Hi Max,
> >
> > Yes - that's right.
> >
> > Change:
> >
> > if ((ldap.ldapEmail!=null)&&(!ldap.ldapEmail.equals("")))
> >
> >
> > to
> >
> >
> > if (ldap.ldapEmail == null) ldap.ldapEmail = "";
> > if (true)
> >
> >
> > (I've added an extra line there to hopefully catch another error that
> could occur.)
> >
> > Thanks,
> >
> >
> > Stuart Lewis
> > IT Innovations Analyst and Developer
> > Te Tumu Herenga The University of Auckland Library
> > Auckland Mail Centre, Private Bag 92019, Auckland 1142, New Zealand
> > Ph: +64 (0)9 373 7599 x81928
> >
> >
> >
> > On 27/04/2010, at 4:15 AM, Max McGrath wrote:
> >
> > > Hi Stuart -
> > >
> > > Here is the code I am looking at:
> > >
> > > if ((ldap.ldapEmail!=null)&&(!ldap.ldapEmail.equals(""))) You want me
> to change this to if (true) and then leave everything else the same???
> > >                               {
> > >                                       try
> > >                                       {
> > >                                               eperson =
> EPerson.findByEmail(context, ldap.ldapEmail);
> > >                                               if (eperson!=null)
> > >                                               {
> > >                                                       log.info
> (LogManager.getHeader(context,
> > >
> "type=ldap-login", "type=ldap_but_already_email"));
> > >
> context.setIgnoreAuthorization(true);
> > >
> eperson.setNetid(netid.toLowerCase());
> > >                                                       eperson.update();
> > >                                                       context.commit();
> > >
> context.setIgnoreAuthorization(false);
> > >
> context.setCurrentUser(eperson);
> > >                                                       return SUCCESS;
> > >                                               }
> > >                                               else
> > >                                               {
> > >                                                       if
> (canSelfRegister(context, request, netid))
> > >                                                       {
> > >                                                               //
> TEMPORARILY turn off authorisation
> > >                                                               try
> > >                                                               {
> > >
> context.setIgnoreAuthorization(true);
> > >
> eperson = EPerson.create(context);
> > >
> if ((ldap.ldapEmail != null) && (!ldap.ldapEmail.equals("")))
> > >                                                                       {
> > >
>       eperson.setEmail(ldap.ldapEmail);
> > >                                                                       }
> > >
> else
> > >                                                                       {
> > >
>       eperson.setEmail(netid +
> ConfigurationManager.getProperty("ldap.netid_email_domain"));
> > >                                                                       }
> > >
> if ((ldap.ldapGivenName!=null) && (!ldap.ldapGivenName.equals("")))
> > >                                                                       {
> > >
>       eperson.setFirstName(ldap.ldapGivenName);
> > >                                                                       }
> > >
> if ((ldap.ldapSurname!=null) && (!ldap.ldapSurname.equals("")))
> > >                                                                       {
> > >
>       eperson.setLastName(ldap.ldapSurname);
> > >                                                                       }
> > >
> if ((ldap.ldapPhone!=null)&&(!ldap.ldapPhone.equals("")))
> > >                                                                       {
> > >
>       eperson.setMetadata("phone", ldap.ldapPhone);
> > >                                                                       }
> > >
> eperson.setNetid(netid.toLowerCase());
> > >
> eperson.setCanLogIn(true);
> > >
> AuthenticationManager.initEPerson(context, request, eperson);
> > >
> eperson.update();
> > >
> context.commit();
> > >
> context.setCurrentUser(eperson);
> > >                                                               }
> > >                                                               catch
> (AuthorizeException e)
> > >                                                               {
> > >
> return NO_SUCH_USER;
> > >                                                               }
> > >                                                               finally
> > >                                                               {
> > >
> context.setIgnoreAuthorization(false);
> > >                                                               }
> > >
> > >                                                               
> > > log.info(LogManager.getHeader(context,
> "authenticate",
> > >
>               "type=ldap-login, created ePerson"));
> > >                                                               return
> SUCCESS;
> > >                                                       }
> > >                                                       else
> > >                                                       {
> > >                                                               // No
> auto-registration for valid certs
> > >                                                               log.info
> (LogManager.getHeader(context,
> > >
>                       "failed_login", "type=ldap_but_no_record"));
> > >                                                               return
> NO_SUCH_USER;
> > >                                                       }
> > >                                               }
> > >                                       }
> > >
> > > --
> > > Max McGrath
> > > Asst. Network Admin/Systems Specialist
> > > Carthage College
> > > 262-552-5512
> > > mmcgr...@carthage.edu
> > >
> > >
> > > On Thu, Apr 22, 2010 at 9:28 PM, Stuart Lewis <s.le...@auckland.ac.nz>
> wrote:
> > > Hi Max,
> > >
> > > Yes - looks like there's a bit of a logic flow problem going on there -
> the check for an empty email is being performed twice, and the first is not
> needed. Try looking at
> [dsapce-src]/dspace-api/src/main/java/org/dspace/authenticate/LDAPHierarchicalAuthentication.java
> and find the line:
> > >
> > > if ((ldap.ldapEmail!=null)&&(!ldap.ldapEmail.equals("")))
> > >
> > > (about line 254) and change it to:
> > >
> > > if (true)
> > >
> > > Rebuild, redeploy etc. If may throw a null pointer exception, if so,
> add just before the if statement:
> > >
> > > if (ldap.ldapEmail == null) ldap.ldapEmail = "";
> > >
> > > If this fixes the problem, we'll look at getting it corrected in the
> next release.
> > >
> > > Thanks,
> > >
> > >
> > > Stuart Lewis
> > > IT Innovations Analyst and Developer
> > > Te Tumu Herenga The University of Auckland Library
> > > Auckland Mail Centre, Private Bag 92019, Auckland 1142, New Zealand
> > > Ph: +64 (0)9 373 7599 x81928
> > >
> > >
> > >
> > > On 23/04/2010, at 2:19 PM, Max McGrath wrote:
> > >
> > > > That could very well be the case as we do not have the e-mail address
> field populated in LDAP.  But I thought the following code would take care
> of that:
> > > >
> > > > # If your LDAP server does not hold an email address for a user, you
> can use
> > > > # the following field to specify your email domain. This value is
> appended
> > > > # to the netid in order to make an email address. E.g. a netid of
> 'user' and
> > > > # ldap.netid_email_domain as '@example.com' would set the email of
> the user
> > > > # to be 'u...@example.com
> > > > ldap.netid_email_domain = @carthage.edu
> > > > --
> > > > Max McGrath
> > > > Asst. Network Admin/Systems Specialist
> > > > Carthage College
> > > > 262-552-5512
> > > > mmcgr...@carthage.edu
> > > >
> > > >
> > > > On Thu, Apr 22, 2010 at 9:12 PM, Stuart Lewis <
> s.le...@auckland.ac.nz> wrote:
> > > > Hi Max,
> > > >
> > > > This code has been stable for a while and is working in a lot of
> installations, so hopefully there is no bug. One possible cause is that the
> email address is not being returned from the LDAP query. If there is no
> email address then an eperson record cannot be created.
> > > >
> > > > Check that the following setting is correctly configured in
> dspace.cfg:
> > > >
> > > > ldap.email_field = mail
> > > >
> > > > Thanks,
> > > >
> > > >
> > > > Stuart Lewis
> > > > IT Innovations Analyst and Developer
> > > > Te Tumu Herenga The University of Auckland Library
> > > > Auckland Mail Centre, Private Bag 92019, Auckland 1142, New Zealand
> > > > Ph: +64 (0)9 373 7599 x81928
> > > >
> > > >
> > > > On 23/04/2010, at 1:48 PM, Max McGrath wrote:
> > > >
> > > > > Yes, I do have that set to true and the ePersons are still not
> being created.
> > > > > --
> > > > > Max McGrath
> > > > > Asst. Network Admin/Systems Specialist
> > > > > Carthage College
> > > > > 262-552-5512
> > > > > mmcgr...@carthage.edu
> > > > >
> > > > >
> > > > > On Thu, Apr 22, 2010 at 1:33 PM, <penning...@rhodes.edu> wrote:
> > > > > Hi, Max. I'm glad you have LDAP auth working now.
> > > > >
> > > > > Do you have webui.ldap.autoregister = true in your dspace.cfg?
> > > > >
> > > > > We don't have webui.ldap.autoregister set to true, currently, and
> we do create all e-person accounts manually for those faculty and staff that
> need to access DSpace to add or edit objects. We were hoping to turn on
> webui.ldap.autoregister this summer.
> > > > >
> > > > > --
> > > > > Stacy Pennington
> > > > > Rhodes College
> > > > > penning...@rhodes.edu
> > > > > (901) 843-3968
> > > > >
> > > > >
> > > > > ---------------------------
> > > > > From: Max McGrath [mailto:mmcgr...@carthage.edu]
> > > > > Sent: Thursday, April 22, 2010 11:57 AM
> > > > > To: Pennington_Stacy
> > > > > Cc: dspace-tech@lists.sourceforge.net
> > > > > Subject: Re: [Dspace-tech] LDAP with DSpace
> > > > >
> > > > > Thanks again Stacy!
> > > > >
> > > > > You, however, have been unsuccessful at getting this to
> automatically create a new ePerson, correct?
> > > > >
> > > > > I don't have access to my logs right now, but I can see that LDAP
> authentication is working, but creating a new ePerson is failing and
> therefore, not letting me login!
> > > > >
> > > > > Is my only option to manually create an ePerson for every person
> who could potentially login?
> > > > > --
> > > > > Max McGrath
> > > > > Asst. Network Admin/Systems Specialist
> > > > > Carthage College
> > > > > 262-552-5512
> > > > > mmcgr...@carthage.edu
> > > > >
> > > > >
> > > > > <ATT00001..txt><ATT00002..txt>
> > > >
> > > >
> > > >
> > > >
> > >
> > >
> > >
> >
> >
> >
> >
>
>
>
>
------------------------------------------------------------------------------
_______________________________________________
DSpace-tech mailing list
DSpace-tech@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dspace-tech

Reply via email to