]> source.dussan.org Git - archiva.git/commitdiff
extract to a component to ease override with Archiva
authorOlivier Lamy <olamy@apache.org>
Mon, 28 Jan 2013 23:54:54 +0000 (23:54 +0000)
committerOlivier Lamy <olamy@apache.org>
Mon, 28 Jan 2013 23:54:54 +0000 (23:54 +0000)
git-svn-id: https://svn.apache.org/repos/asf/archiva/redback/redback-core/trunk@1439700 13f79535-47bb-0310-9956-ffa450edef68

redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/role/DefaultLdapRoleMapper.java
redback-common/redback-common-ldap/src/main/java/org/apache/archiva/redback/common/ldap/role/LdapRoleMapper.java

index 5cfc431d3ae6f8f069856392f5513e56e6b08d28..8b289c3a1bb73be8ac4372bfe7be6bbbf4d5e2c3 100644 (file)
@@ -71,6 +71,10 @@ public class DefaultLdapRoleMapper
     @Named( value = "userConfiguration#default" )
     private UserConfiguration userConf;
 
+    @Inject
+    @Named( value = "ldapRoleMapperConfiguration#default" )
+    private LdapRoleMapperConfiguration ldapRoleMapperConfiguration;
+
     //---------------------------
     // fields
     //---------------------------
@@ -243,7 +247,7 @@ public class DefaultLdapRoleMapper
 
         Set<String> roles = new HashSet<String>( groups.size() );
 
-        Map<String, Collection<String>> mapping = getLdapGroupMappings();
+        Map<String, Collection<String>> mapping = ldapRoleMapperConfiguration.getLdapGroupMappings();
 
         for ( String group : groups )
         {
@@ -400,7 +404,7 @@ public class DefaultLdapRoleMapper
     {
         List<String> groups = getGroups( username, context );
 
-        Map<String, Collection<String>> rolesMapping = getLdapGroupMappings();
+        Map<String, Collection<String>> rolesMapping = ldapRoleMapperConfiguration.getLdapGroupMappings();
 
         Set<String> roles = new HashSet<String>( groups.size() );
 
@@ -448,44 +452,6 @@ public class DefaultLdapRoleMapper
         return this.ldapGroupClass;
     }
 
-    public void addLdapMapping( String role, String ldapGroup )
-    {
-        log.warn( "addLdapMapping not implemented" );
-    }
-
-    public void removeLdapMapping( String role )
-    {
-        log.warn( "removeLdapMapping not implemented" );
-    }
-
-    public void setLdapGroupMappings( Map<String, Collection<String>> mappings )
-        throws MappingException
-    {
-        log.warn( "setLdapGroupMappings not implemented" );
-    }
-
-    public Map<String, Collection<String>> getLdapGroupMappings()
-    {
-        Multimap<String, String> map = ArrayListMultimap.create();
-
-        Collection<String> keys = userConf.getKeys();
-
-        for ( String key : keys )
-        {
-            if ( key.startsWith( UserConfigurationKeys.LDAP_GROUPS_ROLE_START_KEY ) )
-            {
-                String val = userConf.getString( key );
-                String[] roles = StringUtils.split( val, ',' );
-                for ( String role : roles )
-                {
-                    map.put( StringUtils.substringAfter( key, UserConfigurationKeys.LDAP_GROUPS_ROLE_START_KEY ),
-                             role );
-                }
-            }
-        }
-
-        return map.asMap();
-    }
 
     public boolean saveRole( String roleName, DirContext context )
         throws MappingException
@@ -697,7 +663,7 @@ public class DefaultLdapRoleMapper
         throws MappingException
     {
         //all mapped roles
-        Collection<String> groups = getLdapGroupMappings().keySet();
+        Collection<String> groups = ldapRoleMapperConfiguration.getLdapGroupMappings().keySet();
 
         try
         {
@@ -750,6 +716,10 @@ public class DefaultLdapRoleMapper
         }
     }
 
+    //------------------------------------
+    // Mapping part
+    //------------------------------------
+
     //---------------------------------
     // setters for unit tests
     //---------------------------------
@@ -790,8 +760,9 @@ public class DefaultLdapRoleMapper
     //-------------------
 
     protected String findGroupName( String role )
+        throws MappingException
     {
-        Map<String, Collection<String>> mapping = getLdapGroupMappings();
+        Map<String, Collection<String>> mapping = ldapRoleMapperConfiguration.getLdapGroupMappings();
 
         for ( Map.Entry<String, Collection<String>> entry : mapping.entrySet() )
         {
index 40b95377750b1dcf532d70c37fae8d74c6fdd435..79ec33fa488a92f0bf77122585586055e9c26e68 100644 (file)
@@ -89,31 +89,7 @@ public interface LdapRoleMapper
     List<String> getRoles( String username, DirContext context, Collection<String> realRoles )
         throws MappingException;
 
-    /**
-     * add mapping redback role <-> ldap group
-     *
-     * @param role      redback role
-     * @param ldapGroup ldap group
-     */
-    void addLdapMapping( String role, String ldapGroup )
-        throws MappingException;
 
-    /**
-     * remove a mapping
-     *
-     * @param role redback role
-     */
-    void removeLdapMapping( String role )
-        throws MappingException;
-
-    /**
-     * @return Map of corresponding LDAP group (key) and Redback roles (value)
-     */
-    Map<String, Collection<String>> getLdapGroupMappings()
-        throws MappingException;
-
-    void setLdapGroupMappings( Map<String, Collection<String>> mappings )
-        throws MappingException;
 
     /**
      * will save a ldap group corresponding to the mapping.