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 2014/11/05 11:39:34 UTC

git commit: [MRM-1807] Archiva wrapper fail to start

Repository: archiva
Updated Branches:
  refs/heads/master ae9b10930 -> 021bbaf5a


[MRM-1807] Archiva wrapper fail to start


Project: http://git-wip-us.apache.org/repos/asf/archiva/repo
Commit: http://git-wip-us.apache.org/repos/asf/archiva/commit/021bbaf5
Tree: http://git-wip-us.apache.org/repos/asf/archiva/tree/021bbaf5
Diff: http://git-wip-us.apache.org/repos/asf/archiva/diff/021bbaf5

Branch: refs/heads/master
Commit: 021bbaf5a142c5ebbc5b1f9c4d30cc1aa796506e
Parents: ae9b109
Author: Olivier Lamy <ol...@apache.org>
Authored: Wed Nov 5 21:39:00 2014 +1100
Committer: Olivier Lamy <ol...@apache.org>
Committed: Wed Nov 5 21:39:00 2014 +1100

----------------------------------------------------------------------
 .../RedbackRuntimeConfigurationAdmin.java       |  5 ++++
 ...DefaultRedbackRuntimeConfigurationAdmin.java | 27 ++++++++++++--------
 .../web/security/ArchivaRbacManager.java        | 23 +++++++++++------
 3 files changed, 37 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/archiva/blob/021bbaf5/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/runtime/RedbackRuntimeConfigurationAdmin.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/runtime/RedbackRuntimeConfigurationAdmin.java b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/runtime/RedbackRuntimeConfigurationAdmin.java
index 3bb9a11..8fae6a6 100644
--- a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/runtime/RedbackRuntimeConfigurationAdmin.java
+++ b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/runtime/RedbackRuntimeConfigurationAdmin.java
@@ -27,6 +27,11 @@ import org.apache.archiva.admin.model.beans.RedbackRuntimeConfiguration;
  */
 public interface RedbackRuntimeConfigurationAdmin
 {
+
+    static final String DEFAULT_RBAC_MANAGER_IMPL = "jdo";
+
+    static final String DEFAULT_USER_MANAGER_IMPL = "jdo";
+
     RedbackRuntimeConfiguration getRedbackRuntimeConfiguration()
         throws RepositoryAdminException;
 

http://git-wip-us.apache.org/repos/asf/archiva/blob/021bbaf5/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultRedbackRuntimeConfigurationAdmin.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultRedbackRuntimeConfigurationAdmin.java b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultRedbackRuntimeConfigurationAdmin.java
index 2ff43b3..34ed1b6 100644
--- a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultRedbackRuntimeConfigurationAdmin.java
+++ b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultRedbackRuntimeConfigurationAdmin.java
@@ -52,7 +52,7 @@ import java.util.Set;
  * @author Olivier Lamy
  * @since 1.4-M4
  */
-@Service("redbackRuntimeConfigurationAdmin#default")
+@Service( "redbackRuntimeConfigurationAdmin#default" )
 public class DefaultRedbackRuntimeConfigurationAdmin
     extends AbstractRepositoryAdmin
     implements RedbackRuntimeConfigurationAdmin, UserConfiguration
@@ -68,9 +68,9 @@ public class DefaultRedbackRuntimeConfigurationAdmin
 
     @Inject
     public DefaultRedbackRuntimeConfigurationAdmin( ArchivaConfiguration archivaConfiguration,//
-                                                    @Named(value = "userConfiguration#redback") //
+                                                    @Named( value = "userConfiguration#redback" ) //
                                                         UserConfiguration userConfiguration,
-                                                    @Named(value = "cache#users") Cache usersCache )
+                                                    @Named( value = "cache#users" ) Cache usersCache )
     {
         this.archivaConfiguration = archivaConfiguration;
         this.userConfiguration = userConfiguration;
@@ -92,7 +92,8 @@ public class DefaultRedbackRuntimeConfigurationAdmin
                 redbackRuntimeConfiguration = new RedbackRuntimeConfiguration();
                 // so migrate if available
                 String userManagerImpl =
-                    userConfiguration.getConcatenatedList( UserConfigurationKeys.USER_MANAGER_IMPL, "jdo" );
+                    userConfiguration.getConcatenatedList( UserConfigurationKeys.USER_MANAGER_IMPL, //
+                                                           DEFAULT_USER_MANAGER_IMPL );
                 if ( StringUtils.isNotEmpty( userManagerImpl ) )
                 {
                     String[] impls = StringUtils.split( userManagerImpl, ',' );
@@ -101,9 +102,14 @@ public class DefaultRedbackRuntimeConfigurationAdmin
                         redbackRuntimeConfiguration.getUserManagerImpls().add( impl );
                     }
                 }
+                else
+                {
+                    redbackRuntimeConfiguration.getUserManagerImpls().add( DEFAULT_USER_MANAGER_IMPL );
+                }
 
                 String rbacManagerImpls =
-                    userConfiguration.getConcatenatedList( UserConfigurationKeys.RBAC_MANAGER_IMPL, "jdo" );
+                    userConfiguration.getConcatenatedList( UserConfigurationKeys.RBAC_MANAGER_IMPL, //
+                                                           DEFAULT_RBAC_MANAGER_IMPL );
 
                 if ( StringUtils.isNotEmpty( rbacManagerImpls ) )
                 {
@@ -113,6 +119,10 @@ public class DefaultRedbackRuntimeConfigurationAdmin
                         redbackRuntimeConfiguration.getRbacManagerImpls().add( impl );
                     }
                 }
+                else
+                {
+                    redbackRuntimeConfiguration.getRbacManagerImpls().add( DEFAULT_RBAC_MANAGER_IMPL );
+                }
 
                 // now ldap
 
@@ -132,16 +142,13 @@ public class DefaultRedbackRuntimeConfigurationAdmin
 
                 ldapConfiguration.setBaseGroupsDn(
                     userConfiguration.getConcatenatedList( UserConfigurationKeys.LDAP_GROUPS_BASEDN,
-                                                           ldapConfiguration.getBaseDn() )
-                );
+                                                           ldapConfiguration.getBaseDn() ) );
 
                 ldapConfiguration.setContextFactory(
                     userConfiguration.getString( UserConfigurationKeys.LDAP_CONTEX_FACTORY,
                                                  isSunContextFactoryAvailable()
                                                      ? "com.sun.jndi.ldap.LdapCtxFactory"
-                                                     : ""
-                    )
-                );
+                                                     : "" ) );
                 ldapConfiguration.setBindDn(
                     userConfiguration.getConcatenatedList( UserConfigurationKeys.LDAP_BINDDN, null ) );
                 ldapConfiguration.setPassword(

http://git-wip-us.apache.org/repos/asf/archiva/blob/021bbaf5/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaRbacManager.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaRbacManager.java b/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaRbacManager.java
index 0628eb1..143f3c2 100644
--- a/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaRbacManager.java
+++ b/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaRbacManager.java
@@ -98,6 +98,11 @@ public class ArchivaRbacManager
             List<String> rbacManagerIds =
                 redbackRuntimeConfigurationAdmin.getRedbackRuntimeConfiguration().getRbacManagerImpls();
 
+            if ( rbacManagerIds.isEmpty() )
+            {
+                rbacManagerIds.add( RedbackRuntimeConfigurationAdmin.DEFAULT_RBAC_MANAGER_IMPL );
+            }
+
             log.info( "use rbacManagerIds: '{}'", rbacManagerIds );
 
             this.rbacManagersPerId = new LinkedHashMap<>( rbacManagerIds.size() );
@@ -111,7 +116,7 @@ public class ArchivaRbacManager
         }
         catch ( RepositoryAdminException e )
         {
-            // revert to a default one ?
+
             log.error( e.getMessage(), e );
             throw new RuntimeException( e.getMessage(), e );
         }
@@ -126,7 +131,9 @@ public class ArchivaRbacManager
                 return rbacManager;
             }
         }
-        return this.rbacManagersPerId.values().iterator().next();
+        return this.rbacManagersPerId.isEmpty() ? applicationContext.getBean(
+            "rbacManager#" + RedbackRuntimeConfigurationAdmin.DEFAULT_RBAC_MANAGER_IMPL, RBACManager.class ) //
+            : this.rbacManagersPerId.values().iterator().next();
     }
 
     @Override
@@ -294,7 +301,7 @@ public class ArchivaRbacManager
     @Override
     public Permission createPermission( String name, String operationName, String resourceIdentifier )
         throws RbacManagerException
-  {
+    {
         return getRbacManagerForWrite().createPermission( name, operationName, resourceIdentifier );
     }
 
@@ -418,7 +425,7 @@ public class ArchivaRbacManager
         if ( lastException != null && allFailed )
         {
             throw new RbacManagerException( lastException.getMessage(), lastException );
-       }
+        }
     }
 
     @Override
@@ -609,7 +616,7 @@ public class ArchivaRbacManager
                     return r;
                 }
             }
-          catch ( Exception e )
+            catch ( Exception e )
             {
                 lastException = e;
             }
@@ -700,7 +707,7 @@ public class ArchivaRbacManager
                 {
                     userAssignment = rbacManager.saveUserAssignment( userAssignment );
                     allFailed = false;
-               }
+                }
             }
             catch ( Exception e )
             {
@@ -793,7 +800,7 @@ public class ArchivaRbacManager
     {
         for ( RBACManager rbacManager : rbacManagersPerId.values() )
         {
-           try
+            try
             {
                 boolean exists = rbacManager.userAssignmentExists( assignment );
                 if ( exists )
@@ -929,7 +936,7 @@ public class ArchivaRbacManager
             }
             catch ( Exception e )
             {
-            lastException = e;
+                lastException = e;
             }
         }