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()