[ 
http://jira.xwiki.org/jira/browse/XWIKI-238?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sergiu Dumitriu reassigned XWIKI-238:
-------------------------------------

    Assignee: Thomas Mortagne

Thomas, can you check if this was fixed in the new LDAP implementation?

> When using  XWiki + Active directory , treat sAMAccountName (name) case 
> insensitively.
> --------------------------------------------------------------------------------------
>
>                 Key: XWIKI-238
>                 URL: http://jira.xwiki.org/jira/browse/XWIKI-238
>             Project: XWiki Core
>          Issue Type: Bug
>          Components: Authentication and Rights Management
>    Affects Versions: 0.9.840
>         Environment: Xwiki, Microsoft Active Directory, Oracle Database
>            Reporter: Srini Pulugurtha
>         Assigned To: Thomas Mortagne
>             Fix For: Future
>
>         Attachments: current-users.png, LDAPAuthServiceImpl-r3342.diff, 
> lenpalek.png, MyLdapTest.java, myXwikiConfig.zip, xwikiallgroup.png
>
>
> Our environment of Acive Directory (AD) is, lets say, not perferct.   It has 
> some userids/sAMAccount names in all lower case and some in mixed case. For 
> eg, 'JSmith' for John Smith and 'jdoe' for John Doe. 
> However, users use all lowercase when they log into machines.  We integrated 
> our XWiki with AD they would try log in with all lower case user id.  
> But, for some users who had their samAccountName / user id stored in mixed 
> case on AD, XWiki LDAPPlugin seems to do the following, when the log in with 
> all lower case user id (jsmith)
>    - Fetch login info, log them in and store the user with mixed case 
> credentials in XWiki database (JSmith).  
>    - Compare the current user (jsmith) with the one in DB (JSmith)
>    - Fail the login 
> However, I see that a new user JSmith is created in XWiki. 
> After digging through the logs, I have found that when it does fields 
> mapping, it resets the name from AD.  If I omit, name=sAMAccountName, it did 
> not work for any users.
> xwiki.authentication.ldap.fields_mapping=name=sAMAccountName,last_name=sn,first_name=givenName,fullname=displayName,mail=mail,ldap_dn=dn
> Fix: 
> After fetching 'name' field from AD, I am converting to lowercase.  Some 
> implementations may not like it, so it could be made configurable . (like 
> IGNORE_UID_CASE_FOR_AD)
> {code}
> ////// createUserFromLDAP 
>  private void CreateUserFromLDAP(String susername, HashMap attributes, 
> XWikiContext context) throws XWikiException {
>               System.out.println("authenticate - CreateUserFromLDAP");
>         String ldapFieldMapping = getParam("ldap_fields_mapping",context);
>         if (ldapFieldMapping != null && ldapFieldMapping.length() > 0)
>         {
>             String[] fields = ldapFieldMapping.split(",");
>             BaseClass bclass = context.getWiki().getUserClass(context);
>             BaseObject bobj = new BaseObject();
>             bobj.setClassName(bclass.getName());
>             String name = null;
>             String fullwikiname = null;
>             for(int i = 0; i < fields.length; i++ )
>             {
>                 String[] field = fields[i].split("=");
>                 if (2 == field.length)
>                 {
>                    String fieldName = field[0];
>                    if (attributes.containsKey(field[1]))
>                    {
>                        String fieldValue;
>                        fieldValue = (String)attributes.get(field[1]);
>                        if (fieldName.equals("name"))
>                        {
>                                                  // Srini - 03/09 converting 
> all names to lowercase
>                                                  if(fieldValue != null)
>                                                       fieldValue = 
> fieldValue.toLowerCase() ;
>                            name = fieldValue;
>                            fullwikiname = "XWiki." + name;
>                            bobj.setName(fullwikiname);
>                        }
>                        else
>                        {
>                            bobj.setStringValue(fieldName, fieldValue);
>                        }
>                    }
>                 }
> ///// the method continues /////////////////////////////////////////////
> {code}

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.xwiki.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        
_______________________________________________
notifications mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/notifications

Reply via email to