aboutsummaryrefslogtreecommitdiffstats
path: root/archiva-modules
diff options
context:
space:
mode:
Diffstat (limited to 'archiva-modules')
-rw-r--r--archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaLdapRoleMapperConfiguration.java29
1 files changed, 29 insertions, 0 deletions
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
@@ -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
{