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()