Author: olamy
Date: Mon Dec 10 16:37:30 2012
New Revision: 1419573

URL: http://svn.apache.org/viewvc?rev=1419573&view=rev
Log:
[MRM-1721] Chaining user manager implementations.
take care of last changes in redback to be able to track exception when using 
userManagerImpl.

Modified:
    
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java
    
archiva/trunk/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/archiva/security/ArchivaServletAuthenticator.java
    
archiva/trunk/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/archiva/security/DefaultUserRepositories.java
    
archiva/trunk/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaConfigurableUsersManager.java

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.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/DefaultRepositoriesService.java?rev=1419573&r1=1419572&r2=1419573&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java
 Mon Dec 10 16:37:30 2012
@@ -49,6 +49,7 @@ import org.apache.archiva.redback.system
 import org.apache.archiva.redback.system.SecuritySession;
 import org.apache.archiva.redback.system.SecuritySystem;
 import org.apache.archiva.redback.users.User;
+import org.apache.archiva.redback.users.UserManagerException;
 import org.apache.archiva.redback.users.UserNotFoundException;
 import org.apache.archiva.repository.ContentNotFoundException;
 import org.apache.archiva.repository.ManagedRepositoryContent;
@@ -104,7 +105,7 @@ import java.util.TimeZone;
  * @author Olivier Lamy
  * @since 1.4-M1
  */
-@Service ( "repositoriesService#rest" )
+@Service( "repositoriesService#rest" )
 public class DefaultRepositoriesService
     extends AbstractRestService
     implements RepositoriesService
@@ -112,7 +113,7 @@ public class DefaultRepositoriesService
     private Logger log = LoggerFactory.getLogger( getClass() );
 
     @Inject
-    @Named ( value = "taskExecutor#indexing" )
+    @Named( value = "taskExecutor#indexing" )
     private ArchivaIndexingTaskExecutor archivaIndexingTaskExecutor;
 
     @Inject
@@ -131,14 +132,14 @@ public class DefaultRepositoriesService
     private RepositoryContentFactory repositoryFactory;
 
     @Inject
-    @Named ( value = "archivaTaskScheduler#repository" )
+    @Named( value = "archivaTaskScheduler#repository" )
     private ArchivaTaskScheduler scheduler;
 
     @Inject
     private DownloadRemoteIndexScheduler downloadRemoteIndexScheduler;
 
     @Inject
-    @Named ( value = "repositorySessionFactory" )
+    @Named( value = "repositorySessionFactory" )
     protected RepositorySessionFactory repositorySessionFactory;
 
     @Inject
@@ -298,6 +299,10 @@ public class DefaultRepositoriesService
         {
             throw new ArchivaRestServiceException( "user " + userName + " not 
found", e );
         }
+        catch ( UserManagerException e )
+        {
+            throw new ArchivaRestServiceException( 
"ArchivaRestServiceException:" + e.getMessage(), e );
+        }
 
         // check karma on source : read
         AuthenticationResult authn = new AuthenticationResult( true, userName, 
null );

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/archiva/security/ArchivaServletAuthenticator.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/archiva/security/ArchivaServletAuthenticator.java?rev=1419573&r1=1419572&r2=1419573&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/archiva/security/ArchivaServletAuthenticator.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/archiva/security/ArchivaServletAuthenticator.java
 Mon Dec 10 16:37:30 2012
@@ -30,6 +30,7 @@ import org.apache.archiva.redback.system
 import org.apache.archiva.redback.system.SecuritySession;
 import org.apache.archiva.redback.system.SecuritySystem;
 import org.apache.archiva.redback.users.User;
+import org.apache.archiva.redback.users.UserManagerException;
 import org.apache.archiva.redback.users.UserNotFoundException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -115,7 +116,11 @@ public class ArchivaServletAuthenticator
         catch ( AuthorizationException e )
         {
             throw new UnauthorizedException( e.getMessage(), e );
+        } catch ( UserManagerException e )
+        {
+            throw new UnauthorizedException( e.getMessage(), e );
         }
+
     }
 
 

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/archiva/security/DefaultUserRepositories.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/archiva/security/DefaultUserRepositories.java?rev=1419573&r1=1419572&r2=1419573&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/archiva/security/DefaultUserRepositories.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/archiva/security/DefaultUserRepositories.java
 Mon Dec 10 16:37:30 2012
@@ -30,6 +30,7 @@ import org.apache.archiva.redback.system
 import org.apache.archiva.redback.system.SecuritySession;
 import org.apache.archiva.redback.system.SecuritySystem;
 import org.apache.archiva.redback.users.User;
+import org.apache.archiva.redback.users.UserManagerException;
 import org.apache.archiva.redback.users.UserNotFoundException;
 import org.apache.archiva.security.common.ArchivaRoleConstants;
 import org.slf4j.Logger;
@@ -43,7 +44,7 @@ import java.util.List;
 /**
  * DefaultUserRepositories
  */
-@Service ( "userRepositories" )
+@Service( "userRepositories" )
 public class DefaultUserRepositories
     implements UserRepositories
 {
@@ -151,6 +152,10 @@ public class DefaultUserRepositories
         {
             throw new PrincipalNotFoundException( "Unable to find principal " 
+ principal + "", e );
         }
+        catch ( UserManagerException e )
+        {
+            throw new ArchivaSecurityException( e.getMessage(), e );
+        }
 
         if ( user.isLocked() )
         {

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaConfigurableUsersManager.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaConfigurableUsersManager.java?rev=1419573&r1=1419572&r2=1419573&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaConfigurableUsersManager.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaConfigurableUsersManager.java
 Mon Dec 10 16:37:30 2012
@@ -22,6 +22,7 @@ import org.apache.archiva.admin.model.Re
 import org.apache.archiva.admin.model.runtime.ArchivaRuntimeConfigurationAdmin;
 import org.apache.archiva.redback.users.User;
 import org.apache.archiva.redback.users.UserManager;
+import org.apache.archiva.redback.users.UserManagerException;
 import org.apache.archiva.redback.users.UserManagerListener;
 import org.apache.archiva.redback.users.UserNotFoundException;
 import org.apache.archiva.redback.users.UserQuery;
@@ -81,12 +82,14 @@ public class ArchivaConfigurableUsersMan
 
     @Override
     public User addUser( User user )
+        throws UserManagerException
     {
         return userManagerPerId.get( user.getUserManagerId() ).addUser( user );
     }
 
     @Override
     public void addUserUnchecked( User user )
+        throws UserManagerException
     {
         userManagerPerId.get( user.getUserManagerId() ).addUserUnchecked( user 
);
     }
@@ -105,6 +108,7 @@ public class ArchivaConfigurableUsersMan
 
     @Override
     public User createUser( String username, String fullName, String 
emailAddress )
+        throws UserManagerException
     {
         UserManager userManager = findFirstWritable();
         if ( userManager == null )
@@ -123,7 +127,7 @@ public class ArchivaConfigurableUsersMan
 
     @Override
     public void deleteUser( String username )
-        throws UserNotFoundException
+        throws UserNotFoundException, UserManagerException
     {
         UserManager userManager = findFirstWritable();
         if ( userManager == null )
@@ -144,10 +148,10 @@ public class ArchivaConfigurableUsersMan
 
     @Override
     public User findUser( String username )
-        throws UserNotFoundException
+        throws UserManagerException
     {
         User user = null;
-        UserNotFoundException lastException = null;
+        UserManagerException lastException = null;
         for ( UserManager userManager : userManagerPerId.values() )
         {
             try
@@ -162,11 +166,18 @@ public class ArchivaConfigurableUsersMan
             {
                 lastException = e;
             }
+            catch ( UserManagerException e )
+            {
+                lastException = e;
+            }
         }
 
         if ( user == null )
         {
-            throw lastException;
+            if ( lastException != null )
+            {
+                throw lastException;
+            }
         }
 
         return user;
@@ -175,7 +186,7 @@ public class ArchivaConfigurableUsersMan
 
     @Override
     public User getGuestUser()
-        throws UserNotFoundException
+        throws UserNotFoundException, UserManagerException
     {
         User user = null;
         UserNotFoundException lastException = null;
@@ -205,6 +216,7 @@ public class ArchivaConfigurableUsersMan
 
     @Override
     public List<User> findUsersByEmailKey( String emailKey, boolean 
orderAscending )
+        throws UserManagerException
     {
         List<User> users = new ArrayList<User>();
 
@@ -221,6 +233,7 @@ public class ArchivaConfigurableUsersMan
 
     @Override
     public List<User> findUsersByFullNameKey( String fullNameKey, boolean 
orderAscending )
+        throws UserManagerException
     {
         List<User> users = new ArrayList<User>();
 
@@ -237,6 +250,7 @@ public class ArchivaConfigurableUsersMan
 
     @Override
     public List<User> findUsersByQuery( UserQuery query )
+        throws UserManagerException
     {
         List<User> users = new ArrayList<User>();
 
@@ -253,6 +267,7 @@ public class ArchivaConfigurableUsersMan
 
     @Override
     public List<User> findUsersByUsernameKey( String usernameKey, boolean 
orderAscending )
+        throws UserManagerException
     {
         List<User> users = new ArrayList<User>();
 
@@ -275,6 +290,7 @@ public class ArchivaConfigurableUsersMan
 
     @Override
     public List<User> getUsers()
+        throws UserManagerException
     {
         List<User> users = new ArrayList<User>();
 
@@ -291,6 +307,7 @@ public class ArchivaConfigurableUsersMan
 
     @Override
     public List<User> getUsers( boolean orderAscending )
+        throws UserManagerException
     {
         List<User> users = new ArrayList<User>();
 
@@ -314,14 +331,14 @@ public class ArchivaConfigurableUsersMan
 
     @Override
     public User updateUser( User user )
-        throws UserNotFoundException
+        throws UserNotFoundException, UserManagerException
     {
         return userManagerPerId.get( user.getUserManagerId() ).updateUser( 
user );
     }
 
     @Override
     public User updateUser( User user, boolean passwordChangeRequired )
-        throws UserNotFoundException
+        throws UserNotFoundException, UserManagerException
     {
         return userManagerPerId.get( user.getUserManagerId() ).updateUser( 
user, passwordChangeRequired );
     }
@@ -382,6 +399,7 @@ public class ArchivaConfigurableUsersMan
 
     @Override
     public User createGuestUser()
+        throws UserManagerException
     {
         return findFirstWritable().createGuestUser();
     }


Reply via email to