This is an automated email from the ASF dual-hosted git repository.

martin_s pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/archiva.git


The following commit(s) were added to refs/heads/master by this push:
     new dcf4c11  Adapting to redback LDAP group mapping change
dcf4c11 is described below

commit dcf4c111e57a5a996869918667b1566b0bbe8d46
Author: Martin Stockhammer <[email protected]>
AuthorDate: Tue Jul 7 06:52:37 2020 +0200

    Adapting to redback LDAP group mapping change
---
 .../ArchivaLdapRoleMapperConfiguration.java        | 29 ++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git 
a/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaLdapRoleMapperConfiguration.java
 
b/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaLdapRoleMapperConfiguration.java
index e168003..34d33c0 100644
--- 
a/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaLdapRoleMapperConfiguration.java
+++ 
b/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaLdapRoleMapperConfiguration.java
@@ -36,6 +36,7 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 
 /**
  * @author Olivier Lamy
@@ -152,6 +153,34 @@ public class ArchivaLdapRoleMapperConfiguration
     }
 
     @Override
+    public Collection<String> getLdapGroupMapping( final String groupName ) 
throws MappingException
+    {
+        try
+        {
+            RedbackRuntimeConfiguration redbackRuntimeConfiguration =
+                
redbackRuntimeConfigurationAdmin.getRedbackRuntimeConfiguration();
+
+            List<LdapGroupMapping> ldapGroupMappings = 
redbackRuntimeConfiguration.getLdapGroupMappings();
+
+            if ( ldapGroupMappings == null )
+            {
+                return Collections.EMPTY_LIST;
+            }
+
+            Optional<LdapGroupMapping> result = ldapGroupMappings.stream( 
).filter( mapping -> mapping.getGroup( ).equals( groupName ) ).findFirst( );
+            if (result.isPresent()) {
+                return result.get( ).getRoleNames( );
+            } else {
+                throw new MappingException( "Group " + groupName + " not 
found" );
+            }
+        }
+        catch ( RepositoryAdminException e )
+        {
+            throw new MappingException( e.getMessage(), e );
+        }
+    }
+
+    @Override
     public void setLdapGroupMappings( Map<String, List<String>> mappings )
         throws MappingException
     {

Reply via email to