Author: olamy
Date: Tue Dec 18 22:44:22 2012
New Revision: 1423700
URL: http://svn.apache.org/viewvc?rev=1423700&view=rev
Log:
adapt to redback change and that will fix it test
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaUserManagerAuthenticator.java
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaUserManagerAuthenticator.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaUserManagerAuthenticator.java?rev=1423700&r1=1423699&r2=1423700&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaUserManagerAuthenticator.java
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaUserManagerAuthenticator.java
Tue Dec 18 22:44:22 2012
@@ -24,6 +24,7 @@ import org.apache.archiva.redback.authen
import org.apache.archiva.redback.authentication.AuthenticationConstants;
import org.apache.archiva.redback.authentication.AuthenticationDataSource;
import org.apache.archiva.redback.authentication.AuthenticationException;
+import org.apache.archiva.redback.authentication.AuthenticationFailureCause;
import org.apache.archiva.redback.authentication.AuthenticationResult;
import org.apache.archiva.redback.authentication.Authenticator;
import
org.apache.archiva.redback.authentication.PasswordBasedAuthenticationDataSource;
@@ -53,7 +54,7 @@ import java.util.Map;
* @author Olivier Lamy
* @since 1.4-M4
*/
-@Service("authenticator#archiva")
+@Service( "authenticator#archiva" )
public class ArchivaUserManagerAuthenticator
extends AbstractAuthenticator
implements Authenticator
@@ -102,7 +103,7 @@ public class ArchivaUserManagerAuthentic
String username = null;
Exception resultException = null;
PasswordBasedAuthenticationDataSource source =
(PasswordBasedAuthenticationDataSource) ds;
- Map<String, String> authnResultExceptionsMap = new HashMap<String,
String>();
+ List<AuthenticationFailureCause> authnResultErrors = new
ArrayList<AuthenticationFailureCause>();
for ( UserManager userManager : userManagers )
{
@@ -119,7 +120,9 @@ public class ArchivaUserManagerAuthentic
new AccountLockedException( "Account " +
source.getPrincipal() + " is locked.", user );
log.warn( "{}", e.getMessage() );
resultException = e;
- authnResultExceptionsMap.put(
AuthenticationConstants.AUTHN_LOCKED_USER_EXCEPTION, e.getMessage() );
+ authnResultErrors.add(
+ new AuthenticationFailureCause(
AuthenticationConstants.AUTHN_LOCKED_USER_EXCEPTION,
+ e.getMessage() ) );
}
if ( user.isPasswordChangeRequired() &&
source.isEnforcePasswordChange() )
@@ -128,8 +131,9 @@ public class ArchivaUserManagerAuthentic
MustChangePasswordException e = new
MustChangePasswordException( "Password expired.", user );
log.warn( "{}", e.getMessage() );
resultException = e;
- authnResultExceptionsMap.put(
AuthenticationConstants.AUTHN_MUST_CHANGE_PASSWORD_EXCEPTION,
- e.getMessage() );
+ authnResultErrors.add(
+ new AuthenticationFailureCause(
AuthenticationConstants.AUTHN_MUST_CHANGE_PASSWORD_EXCEPTION,
+ e.getMessage() ) );
}
PasswordEncoder encoder = securityPolicy.getPasswordEncoder();
@@ -163,16 +167,17 @@ public class ArchivaUserManagerAuthentic
user.setPasswordChangeRequired( true );
//throw e;
resultException = e;
- authnResultExceptionsMap.put(
AuthenticationConstants.AUTHN_MUST_CHANGE_PASSWORD_EXCEPTION,
- e.getMessage() );
+ authnResultErrors.add( new AuthenticationFailureCause(
+
AuthenticationConstants.AUTHN_MUST_CHANGE_PASSWORD_EXCEPTION, e.getMessage() )
);
}
}
else
{
log.warn( "Password is Invalid for user {} and userManager
'{}'.", source.getPrincipal(),
userManager.getId() );
- authnResultExceptionsMap.put(
AuthenticationConstants.AUTHN_NO_SUCH_USER,
- "Password is Invalid for
user " + source.getPrincipal() + "." );
+ authnResultErrors.add( new AuthenticationFailureCause(
AuthenticationConstants.AUTHN_NO_SUCH_USER,
+
"Password is Invalid for user "
+
+ source.getPrincipal() + "." ) );
try
{
@@ -195,19 +200,20 @@ public class ArchivaUserManagerAuthentic
{
log.warn( "Login for user {} failed. user not found.",
source.getPrincipal() );
resultException = e;
- authnResultExceptionsMap.put(
AuthenticationConstants.AUTHN_NO_SUCH_USER,
- "Login for user " +
source.getPrincipal() + " failed. user not found." );
+ authnResultErrors.add( new AuthenticationFailureCause(
AuthenticationConstants.AUTHN_NO_SUCH_USER,
+ "Login
for user " + source.getPrincipal()
+ + "
failed. user not found." ) );
}
catch ( UserManagerException e )
{
log.warn( "Login for user {} failed, message: {}",
source.getPrincipal(), e.getMessage() );
resultException = e;
- authnResultExceptionsMap.put(
AuthenticationConstants.AUTHN_RUNTIME_EXCEPTION,
- "Login for user " +
source.getPrincipal() + " failed, message: "
- + e.getMessage() );
+ authnResultErrors.add( new AuthenticationFailureCause(
AuthenticationConstants.AUTHN_RUNTIME_EXCEPTION,
+ "Login
for user " + source.getPrincipal()
+ + "
failed, message: " + e.getMessage() ) );
}
}
- return new AuthenticationResult( authenticationSuccess, username,
resultException, authnResultExceptionsMap );
+ return new AuthenticationResult( authenticationSuccess, username,
resultException, authnResultErrors );
}
public boolean supportsDataSource( AuthenticationDataSource source )