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 2014/10/14 08:12:41 UTC

[1/2] git commit: Work with users defined in LDAP posixGroups.

Repository: archiva-redback-core
Updated Branches:
  refs/heads/master 2d60bfe26 -> 694e1be55


Work with users defined in LDAP posixGroups.

Add a configuration key LDAP_DN_ATTRIBUTE


Project: http://git-wip-us.apache.org/repos/asf/archiva-redback-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/archiva-redback-core/commit/1e5c5675
Tree: http://git-wip-us.apache.org/repos/asf/archiva-redback-core/tree/1e5c5675
Diff: http://git-wip-us.apache.org/repos/asf/archiva-redback-core/diff/1e5c5675

Branch: refs/heads/master
Commit: 1e5c5675a71314af2fdd9e6d7fd0c70b321fc9c4
Parents: 2d60bfe
Author: Jeroen Hoek <je...@lable.org>
Authored: Tue Oct 7 13:18:41 2014 +0200
Committer: Jeroen Hoek <je...@lable.org>
Committed: Tue Oct 7 13:18:41 2014 +0200

----------------------------------------------------------------------
 .../common/ldap/role/DefaultLdapRoleMapper.java | 36 ++++++++++++++------
 .../common/ldap/user/LdapUserMapper.java        |  2 ++
 .../configuration/UserConfigurationKeys.java    |  2 ++
 3 files changed, 30 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/archiva-redback-core/blob/1e5c5675/redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/role/DefaultLdapRoleMapper.java
----------------------------------------------------------------------
diff --git a/redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/role/DefaultLdapRoleMapper.java b/redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/role/DefaultLdapRoleMapper.java
index af616be..c63695b 100644
--- a/redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/role/DefaultLdapRoleMapper.java
+++ b/redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/role/DefaultLdapRoleMapper.java
@@ -97,6 +97,8 @@ public class DefaultLdapRoleMapper
 
     private boolean useDefaultRoleName = false;
 
+    private String dnAttr = "dn";
+
     /**
      * possible to user cn=beer or uid=beer or sn=beer etc
      * so make it configurable
@@ -123,6 +125,8 @@ public class DefaultLdapRoleMapper
         this.userIdAttribute = userConf.getString( UserConfigurationKeys.LDAP_USER_ID_ATTRIBUTE, this.userIdAttribute );
 
         this.ldapGroupMember = userConf.getString( UserConfigurationKeys.LDAP_GROUPS_MEMBER, this.ldapGroupMember );
+
+        this.dnAttr = userConf.getString( UserConfigurationKeys.LDAP_DN_ATTRIBUTE, this.dnAttr );
     }
 
     public List<String> getAllGroups( DirContext context )
@@ -346,7 +350,7 @@ public class DefaultLdapRoleMapper
 
             searchControls.setDerefLinkFlag( true );
             searchControls.setSearchScope( SearchControls.SUBTREE_SCOPE );
-            String dn = null;
+            String groupEntry = null;
             try
             {
                 //try to look the user up
@@ -354,10 +358,10 @@ public class DefaultLdapRoleMapper
                 if ( user instanceof LdapUser )
                 {
                     LdapUser ldapUser = LdapUser.class.cast( user );
-                    Attribute dnAttribute = ldapUser.getOriginalAttributes().get( "distinguishedName" );
+                    Attribute dnAttribute = ldapUser.getOriginalAttributes().get( getLdapDnAttribute() );
                     if ( dnAttribute != null )
                     {
-                        dn = String.class.cast( dnAttribute.get() );
+                        groupEntry = String.class.cast( dnAttribute.get() );
                     }
 
                 }
@@ -370,17 +374,25 @@ public class DefaultLdapRoleMapper
             {
                 log.warn( "Failed to look up user {}. Computing distinguished name manually", username, e );
             }
-            if ( dn == null )
+            if ( groupEntry == null )
             {
-                //failed to look up the user directly
+                //failed to look up the user's groupEntry directly
                 StringBuilder builder = new StringBuilder();
-                builder.append( this.userIdAttribute ).append( "=" ).append( username ).append( "," ).append(
-                    getBaseDn() );
-                dn = builder.toString();
+                String posixGroup = "posixGroup";
+                if (posixGroup.equals(getLdapGroupClass()))
+                {
+                    builder.append( username );
+                }
+                else
+                {
+                    builder.append( this.userIdAttribute ).append( "=" ).append( username ).append( "," ).append(
+                        getBaseDn() );
+                }
+                groupEntry = builder.toString();
             }
             String filter =
                 new StringBuilder().append( "(&" ).append( "(objectClass=" + getLdapGroupClass() + ")" ).append(
-                    "(" ).append( getLdapGroupMember() ).append( "=" ).append( dn ).append( ")" ).append(
+                    "(" ).append( getLdapGroupMember() ).append( "=" ).append( groupEntry ).append( ")" ).append(
                     ")" ).toString();
 
             log.debug( "filter: {}", filter );
@@ -420,7 +432,7 @@ public class DefaultLdapRoleMapper
                     userGroups.add( groupName );
 
                 }
-                else if ( allMembers.contains( dn ) )
+                else if ( allMembers.contains( groupEntry ) )
                 {
                     String groupName = searchResult.getName();
                     // cn=blabla we only want bla bla
@@ -500,6 +512,10 @@ public class DefaultLdapRoleMapper
         return this.ldapGroupClass;
     }
 
+    public String getLdapDnAttribute()
+    {
+        return this.dnAttr;
+    }
 
     public boolean saveRole( String roleName, DirContext context )
         throws MappingException

http://git-wip-us.apache.org/repos/asf/archiva-redback-core/blob/1e5c5675/redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/user/LdapUserMapper.java
----------------------------------------------------------------------
diff --git a/redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/user/LdapUserMapper.java b/redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/user/LdapUserMapper.java
index 13ed451..fb7c05f 100644
--- a/redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/user/LdapUserMapper.java
+++ b/redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/user/LdapUserMapper.java
@@ -78,6 +78,8 @@ public class LdapUserMapper
             userConf.getString( UserConfigurationKeys.LDAP_MAPPER_USER_ATTRIBUTE_OBJECT_CLASS, userObjectClass );
         userFilter = userConf.getConcatenatedList( UserConfigurationKeys.LDAP_MAPPER_USER_ATTRIBUTE_FILTER, userFilter );
         maxResultCount = userConf.getInt( UserConfigurationKeys.LDAP_MAX_RESULT_COUNT, maxResultCount );
+
+        distinguishedNameAttribute = userConf.getString( UserConfigurationKeys.LDAP_DN_ATTRIBUTE, distinguishedNameAttribute );
     }
 
     public Attributes getCreationAttributes( User user, boolean encodePasswordIfChanged )

http://git-wip-us.apache.org/repos/asf/archiva-redback-core/blob/1e5c5675/redback-configuration/src/main/java/org/apache/archiva/redback/configuration/UserConfigurationKeys.java
----------------------------------------------------------------------
diff --git a/redback-configuration/src/main/java/org/apache/archiva/redback/configuration/UserConfigurationKeys.java b/redback-configuration/src/main/java/org/apache/archiva/redback/configuration/UserConfigurationKeys.java
index bd36592..e4541dd 100644
--- a/redback-configuration/src/main/java/org/apache/archiva/redback/configuration/UserConfigurationKeys.java
+++ b/redback-configuration/src/main/java/org/apache/archiva/redback/configuration/UserConfigurationKeys.java
@@ -74,6 +74,8 @@ public interface UserConfigurationKeys
 
     String LDAP_AUTHENTICATION_METHOD = "ldap.config.authentication.method";
 
+    String LDAP_DN_ATTRIBUTE = "ldap.config.dn";
+
     String LDAP_BASEDN = "ldap.config.base.dn";
 
     String LDAP_BINDDN = "ldap.config.bind.dn";


[2/2] git commit: format code

Posted by ol...@apache.org.
format code


Project: http://git-wip-us.apache.org/repos/asf/archiva-redback-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/archiva-redback-core/commit/694e1be5
Tree: http://git-wip-us.apache.org/repos/asf/archiva-redback-core/tree/694e1be5
Diff: http://git-wip-us.apache.org/repos/asf/archiva-redback-core/diff/694e1be5

Branch: refs/heads/master
Commit: 694e1be55e36553afd35443d8953e8d781171781
Parents: 1e5c567
Author: Olivier Lamy <ol...@apache.org>
Authored: Tue Oct 14 17:12:33 2014 +1100
Committer: Olivier Lamy <ol...@apache.org>
Committed: Tue Oct 14 17:12:33 2014 +1100

----------------------------------------------------------------------
 .../common/ldap/role/DefaultLdapRoleMapper.java  |  2 +-
 .../redback/common/ldap/user/LdapUserMapper.java | 19 +++++++++++--------
 2 files changed, 12 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/archiva-redback-core/blob/694e1be5/redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/role/DefaultLdapRoleMapper.java
----------------------------------------------------------------------
diff --git a/redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/role/DefaultLdapRoleMapper.java b/redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/role/DefaultLdapRoleMapper.java
index c63695b..572e9c7 100644
--- a/redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/role/DefaultLdapRoleMapper.java
+++ b/redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/role/DefaultLdapRoleMapper.java
@@ -379,7 +379,7 @@ public class DefaultLdapRoleMapper
                 //failed to look up the user's groupEntry directly
                 StringBuilder builder = new StringBuilder();
                 String posixGroup = "posixGroup";
-                if (posixGroup.equals(getLdapGroupClass()))
+                if ( posixGroup.equals( getLdapGroupClass() ) )
                 {
                     builder.append( username );
                 }

http://git-wip-us.apache.org/repos/asf/archiva-redback-core/blob/694e1be5/redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/user/LdapUserMapper.java
----------------------------------------------------------------------
diff --git a/redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/user/LdapUserMapper.java b/redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/user/LdapUserMapper.java
index fb7c05f..ddfb329 100644
--- a/redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/user/LdapUserMapper.java
+++ b/redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/user/LdapUserMapper.java
@@ -37,7 +37,7 @@ import java.util.Date;
 /**
  * @author <a href="jesse@codehaus.org"> jesse
  */
-@Service("userMapper#ldap")
+@Service( "userMapper#ldap" )
 public class LdapUserMapper
     implements UserMapper
 {
@@ -60,7 +60,7 @@ public class LdapUserMapper
     int maxResultCount = 0;
 
     @Inject
-    @Named(value = "userConfiguration#default")
+    @Named( value = "userConfiguration#default" )
     private UserConfiguration userConf;
 
     @PostConstruct
@@ -76,10 +76,12 @@ public class LdapUserMapper
                                                    userConf.getConcatenatedList( "ldap.config.base.dn", userBaseDn ) );
         userObjectClass =
             userConf.getString( UserConfigurationKeys.LDAP_MAPPER_USER_ATTRIBUTE_OBJECT_CLASS, userObjectClass );
-        userFilter = userConf.getConcatenatedList( UserConfigurationKeys.LDAP_MAPPER_USER_ATTRIBUTE_FILTER, userFilter );
+        userFilter =
+            userConf.getConcatenatedList( UserConfigurationKeys.LDAP_MAPPER_USER_ATTRIBUTE_FILTER, userFilter );
         maxResultCount = userConf.getInt( UserConfigurationKeys.LDAP_MAX_RESULT_COUNT, maxResultCount );
 
-        distinguishedNameAttribute = userConf.getString( UserConfigurationKeys.LDAP_DN_ATTRIBUTE, distinguishedNameAttribute );
+        distinguishedNameAttribute =
+            userConf.getString( UserConfigurationKeys.LDAP_DN_ATTRIBUTE, distinguishedNameAttribute );
     }
 
     public Attributes getCreationAttributes( User user, boolean encodePasswordIfChanged )
@@ -127,14 +129,15 @@ public class LdapUserMapper
         return distinguishedNameAttribute;
     }
 
-    public void setDistinguishedNameAttribute(String distinguishedNameAttribute)
+    public void setDistinguishedNameAttribute( String distinguishedNameAttribute )
     {
         this.distinguishedNameAttribute = distinguishedNameAttribute;
     }
 
     public String[] getUserAttributeNames()
     {
-        return new String[]{ emailAttribute, fullNameAttribute, passwordAttribute, userIdAttribute, distinguishedNameAttribute };
+        return new String[]{ emailAttribute, fullNameAttribute, passwordAttribute, userIdAttribute,
+            distinguishedNameAttribute };
     }
 
     public int getMaxResultCount()
@@ -292,8 +295,8 @@ public class LdapUserMapper
 
     public String[] getReturningAttributes()
     {
-        return new String[]{ getUserIdAttribute(), getEmailAttribute(), getFullNameAttribute(),
-            getPasswordAttribute(), getDistinguishedNameAttribute() };
+        return new String[]{ getUserIdAttribute(), getEmailAttribute(), getFullNameAttribute(), getPasswordAttribute(),
+            getDistinguishedNameAttribute() };
     }
 
     public UserConfiguration getUserConf()