From dcf4c111e57a5a996869918667b1566b0bbe8d46 Mon Sep 17 00:00:00 2001 From: Martin Stockhammer Date: Tue, 7 Jul 2020 06:52:37 +0200 Subject: [PATCH] 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 e16800390..34d33c0da 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 @@ -151,6 +152,34 @@ public class ArchivaLdapRoleMapperConfiguration } } + @Override + public Collection getLdapGroupMapping( final String groupName ) throws MappingException + { + try + { + RedbackRuntimeConfiguration redbackRuntimeConfiguration = + redbackRuntimeConfigurationAdmin.getRedbackRuntimeConfiguration(); + + List ldapGroupMappings = redbackRuntimeConfiguration.getLdapGroupMappings(); + + if ( ldapGroupMappings == null ) + { + return Collections.EMPTY_LIST; + } + + Optional 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> mappings ) throws MappingException -- 2.39.5