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