You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by ol...@apache.org on 2013/01/21 23:42:43 UTC

svn commit: r1436669 - in /archiva/redback/redback-core/trunk: redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/role/ redback-configuration/src/main/java/org/apache/archiva/redback/configuration/ redback-rbac/redb...

Author: olamy
Date: Mon Jan 21 22:42:42 2013
New Revision: 1436669

URL: http://svn.apache.org/viewvc?rev=1436669&view=rev
Log:
make start user dn configurable
some use cn= or uid= or sn= etc..
so it's now configurable with default uid=

Modified:
    archiva/redback/redback-core/trunk/redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/role/DefaultLdapRoleMapper.java
    archiva/redback/redback-core/trunk/redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/role/LdapRoleMapper.java
    archiva/redback/redback-core/trunk/redback-configuration/src/main/java/org/apache/archiva/redback/configuration/UserConfigurationKeys.java
    archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-ldap/src/test/java/org/apache/archiva/redback/rbac/ldap/LdapRbacManagerTest.java

Modified: archiva/redback/redback-core/trunk/redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/role/DefaultLdapRoleMapper.java
URL: http://svn.apache.org/viewvc/archiva/redback/redback-core/trunk/redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/role/DefaultLdapRoleMapper.java?rev=1436669&r1=1436668&r2=1436669&view=diff
==============================================================================
--- archiva/redback/redback-core/trunk/redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/role/DefaultLdapRoleMapper.java (original)
+++ archiva/redback/redback-core/trunk/redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/role/DefaultLdapRoleMapper.java Mon Jan 21 22:42:42 2013
@@ -57,7 +57,7 @@ import java.util.Set;
  * @author Olivier Lamy
  * @since 2.1
  */
-@Service("ldapRoleMapper#default")
+@Service( "ldapRoleMapper#default" )
 public class DefaultLdapRoleMapper
     implements LdapRoleMapper
 {
@@ -68,7 +68,7 @@ public class DefaultLdapRoleMapper
     private LdapConnectionFactory ldapConnectionFactory;
 
     @Inject
-    @Named(value = "userConfiguration#default")
+    @Named( value = "userConfiguration#default" )
     private UserConfiguration userConf;
 
     //---------------------------
@@ -83,6 +83,12 @@ public class DefaultLdapRoleMapper
 
     private boolean useDefaultRoleName = false;
 
+    /**
+     * possible to user cn=beer or uid=beer or sn=beer etc
+     * so make it configurable
+     */
+    private String userIdAttribute = "uid";
+
     @PostConstruct
     public void initialize()
     {
@@ -99,6 +105,8 @@ public class DefaultLdapRoleMapper
 
         this.useDefaultRoleName =
             userConf.getBoolean( UserConfigurationKeys.LDAP_GROUPS_USE_ROLENAME, this.useDefaultRoleName );
+
+        this.userIdAttribute = userConf.getString( UserConfigurationKeys.LDAP_USER_ID_ATTRIBUTE, this.userIdAttribute );
     }
 
     public String getLdapGroup( String role )
@@ -330,8 +338,8 @@ public class DefaultLdapRoleMapper
 
             String filter =
                 new StringBuilder().append( "(&" ).append( "(objectClass=" + getLdapGroupClass() + ")" ).append(
-                    "(uniquemember=" ).append( "uid=" + username + "," + this.getBaseDn() ).append( ")" ).append(
-                    ")" ).toString();
+                    "(uniquemember=" ).append( this.userIdAttribute + "=" + username + "," + this.getBaseDn() ).append(
+                    ")" ).append( ")" ).toString();
 
             log.debug( "filter: {}", filter );
 
@@ -516,7 +524,7 @@ public class DefaultLdapRoleMapper
         // attribute mandatory when created a group so add admin as default member
         // TODO make this default configurable
         BasicAttribute basicAttribute = new BasicAttribute( "uniquemember" );
-        basicAttribute.add( "uid=admin," + getBaseDn() );
+        basicAttribute.add( this.userIdAttribute + "=admin," + getBaseDn() );
         attributes.put( basicAttribute );
 
         try
@@ -576,13 +584,13 @@ public class DefaultLdapRoleMapper
                 if ( attribute == null )
                 {
                     BasicAttribute basicAttribute = new BasicAttribute( "uniquemember" );
-                    basicAttribute.add( "uid=" + username + "," + getGroupsDn() );
+                    basicAttribute.add( this.userIdAttribute + "=" + username + "," + getGroupsDn() );
                     context.modifyAttributes( "cn=" + groupName + "," + getGroupsDn(), new ModificationItem[]{
                         new ModificationItem( DirContext.ADD_ATTRIBUTE, basicAttribute ) } );
                 }
                 else
                 {
-                    attribute.add( "uid=" + username + "," + getGroupsDn() );
+                    attribute.add( this.userIdAttribute + "=" + username + "," + getGroupsDn() );
                     context.modifyAttributes( "cn=" + groupName + "," + getGroupsDn(), new ModificationItem[]{
                         new ModificationItem( DirContext.REPLACE_ATTRIBUTE, attribute ) } );
                 }
@@ -647,7 +655,7 @@ public class DefaultLdapRoleMapper
                 if ( attribute != null )
                 {
                     BasicAttribute basicAttribute = new BasicAttribute( "uniquemember" );
-                    basicAttribute.add( "uid=" + username + "," + getGroupsDn() );
+                    basicAttribute.add( this.userIdAttribute + "=" + username + "," + getGroupsDn() );
                     context.modifyAttributes( "cn=" + groupName + "," + getGroupsDn(), new ModificationItem[]{
                         new ModificationItem( DirContext.REMOVE_ATTRIBUTE, basicAttribute ) } );
                 }
@@ -790,4 +798,16 @@ public class DefaultLdapRoleMapper
         }
         return null;
     }
+
+
+
+    public String getUserIdAttribute()
+    {
+        return userIdAttribute;
+    }
+
+    public void setUserIdAttribute( String userIdAttribute )
+    {
+        this.userIdAttribute = userIdAttribute;
+    }
 }

Modified: archiva/redback/redback-core/trunk/redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/role/LdapRoleMapper.java
URL: http://svn.apache.org/viewvc/archiva/redback/redback-core/trunk/redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/role/LdapRoleMapper.java?rev=1436669&r1=1436668&r2=1436669&view=diff
==============================================================================
--- archiva/redback/redback-core/trunk/redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/role/LdapRoleMapper.java (original)
+++ archiva/redback/redback-core/trunk/redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/role/LdapRoleMapper.java Mon Jan 21 22:42:42 2013
@@ -146,4 +146,6 @@ public interface LdapRoleMapper
     void removeRole( String roleName, DirContext context )
         throws MappingException;
 
+    String getUserIdAttribute();
+
 }

Modified: archiva/redback/redback-core/trunk/redback-configuration/src/main/java/org/apache/archiva/redback/configuration/UserConfigurationKeys.java
URL: http://svn.apache.org/viewvc/archiva/redback/redback-core/trunk/redback-configuration/src/main/java/org/apache/archiva/redback/configuration/UserConfigurationKeys.java?rev=1436669&r1=1436668&r2=1436669&view=diff
==============================================================================
--- archiva/redback/redback-core/trunk/redback-configuration/src/main/java/org/apache/archiva/redback/configuration/UserConfigurationKeys.java (original)
+++ archiva/redback/redback-core/trunk/redback-configuration/src/main/java/org/apache/archiva/redback/configuration/UserConfigurationKeys.java Mon Jan 21 22:42:42 2013
@@ -82,10 +82,12 @@ public interface UserConfigurationKeys
 
     String LDAP_GROUPS_ROLE_START_KEY = "ldap.config.groups.role.";
 
-    String LDAP_GROUPS_USE_ROLENAME  = "ldap.config.groups.use.rolename";
+    String LDAP_GROUPS_USE_ROLENAME = "ldap.config.groups.use.rolename";
 
     String LDAP_WRITABLE = "ldap.config.writable";
 
+    String LDAP_USER_ID_ATTRIBUTE = "ldap.config.user.attribute";
+
     String APPLICATION_URL = "application.url";
 
     String EMAIL_URL_PATH = "email.url.path";

Modified: archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-ldap/src/test/java/org/apache/archiva/redback/rbac/ldap/LdapRbacManagerTest.java
URL: http://svn.apache.org/viewvc/archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-ldap/src/test/java/org/apache/archiva/redback/rbac/ldap/LdapRbacManagerTest.java?rev=1436669&r1=1436668&r2=1436669&view=diff
==============================================================================
--- archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-ldap/src/test/java/org/apache/archiva/redback/rbac/ldap/LdapRbacManagerTest.java (original)
+++ archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-ldap/src/test/java/org/apache/archiva/redback/rbac/ldap/LdapRbacManagerTest.java Mon Jan 21 22:42:42 2013
@@ -52,17 +52,17 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-@DirtiesContext( classMode = DirtiesContext.ClassMode.AFTER_CLASS )
+@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS)
 public class LdapRbacManagerTest
     extends AbstractRbacManagerTestCase
 {
 
     @Inject
-    @Named( value = "rbacManager#ldap" )
+    @Named(value = "rbacManager#ldap")
     LdapRbacManager rbacManager;
 
     @Inject
-    @Named( value = "apacheDS#test" )
+    @Named(value = "apacheDS#test")
     private ApacheDs apacheDs;
 
     private String suffix, groupSuffix;