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 2013/02/20 23:39:53 UTC

svn commit: r1448448 - /archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRedbackRuntimeConfigurationService.java

Author: olamy
Date: Wed Feb 20 22:39:53 2013
New Revision: 1448448

URL: http://svn.apache.org/r1448448
Log:
reload rbac manager if changed

Modified:
    archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRedbackRuntimeConfigurationService.java

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRedbackRuntimeConfigurationService.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRedbackRuntimeConfigurationService.java?rev=1448448&r1=1448447&r2=1448448&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRedbackRuntimeConfigurationService.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRedbackRuntimeConfigurationService.java Wed Feb 20 22:39:53 2013
@@ -58,7 +58,7 @@ import java.util.Properties;
  * @author Olivier Lamy
  * @since 1.4-M4
  */
-@Service("redbackRuntimeConfigurationService#rest")
+@Service( "redbackRuntimeConfigurationService#rest" )
 public class DefaultRedbackRuntimeConfigurationService
     extends AbstractRestService
     implements RedbackRuntimeConfigurationService
@@ -67,18 +67,22 @@ public class DefaultRedbackRuntimeConfig
     private RedbackRuntimeConfigurationAdmin redbackRuntimeConfigurationAdmin;
 
     @Inject
-    @Named(value = "userManager#configurable")
+    @Named( value = "userManager#configurable" )
     private UserManager userManager;
 
     @Inject
+    @Named( value = "rbacManager#default" )
+    private RBACManager rbacManager;
+
+    @Inject
     private ApplicationContext applicationContext;
 
     @Inject
-    @Named(value = "ldapConnectionFactory#configurable")
+    @Named( value = "ldapConnectionFactory#configurable" )
     private LdapConnectionFactory ldapConnectionFactory;
 
     @Inject
-    @Named(value = "cache#users")
+    @Named( value = "cache#users" )
     private Cache usersCache;
 
     @Inject
@@ -111,6 +115,13 @@ public class DefaultRedbackRuntimeConfig
                 userManagerChanged || ( redbackRuntimeConfiguration.getUserManagerImpls().toString().hashCode()
                     != redbackRuntimeConfigurationAdmin.getRedbackRuntimeConfiguration().getUserManagerImpls().toString().hashCode() );
 
+            boolean rbacManagerChanged = redbackRuntimeConfiguration.getRbacManagerImpls().size()
+                != redbackRuntimeConfigurationAdmin.getRedbackRuntimeConfiguration().getRbacManagerImpls().size();
+
+            rbacManagerChanged =
+                rbacManagerChanged || ( redbackRuntimeConfiguration.getRbacManagerImpls().toString().hashCode()
+                    != redbackRuntimeConfigurationAdmin.getRedbackRuntimeConfiguration().getRbacManagerImpls().toString().hashCode() );
+
             redbackRuntimeConfigurationAdmin.updateRedbackRuntimeConfiguration( redbackRuntimeConfiguration );
 
             if ( userManagerChanged )
@@ -120,6 +131,13 @@ public class DefaultRedbackRuntimeConfig
                 userManager.initialize();
             }
 
+            if ( rbacManagerChanged )
+            {
+                log.info( "rbac manager changed to {} so reload it",
+                          redbackRuntimeConfiguration.getRbacManagerImpls() );
+                rbacManager.initialize();
+            }
+
             ldapConnectionFactory.initialize();
 
             Collection<PasswordRule> passwordRules = applicationContext.getBeansOfType( PasswordRule.class ).values();
@@ -233,7 +251,7 @@ public class DefaultRedbackRuntimeConfig
         throws ArchivaRestServiceException
     {
         return new RedbackImplementationsInformations( getUserManagerImplementationInformations(),
-                                                      getRbacManagerImplementationInformations() );
+                                                       getRbacManagerImplementationInformations() );
     }
 
     public Boolean checkLdapConnection()