Author: olamy
Date: Thu Dec 13 20:05:51 2012
New Revision: 1421476
URL: http://svn.apache.org/viewvc?rev=1421476&view=rev
Log:
reload authenticators when configuration has changed
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultArchivaRuntimeConfigurationService.java
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-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultArchivaRuntimeConfigurationService.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/DefaultArchivaRuntimeConfigurationService.java?rev=1421476&r1=1421475&r2=1421476&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultArchivaRuntimeConfigurationService.java
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultArchivaRuntimeConfigurationService.java
Thu Dec 13 20:05:51 2012
@@ -22,6 +22,8 @@ import org.apache.archiva.admin.model.Re
import org.apache.archiva.admin.model.beans.ArchivaRuntimeConfiguration;
import org.apache.archiva.admin.model.beans.LdapConfiguration;
import org.apache.archiva.admin.model.runtime.ArchivaRuntimeConfigurationAdmin;
+import org.apache.archiva.redback.authentication.AuthenticationException;
+import org.apache.archiva.redback.authentication.Authenticator;
import org.apache.archiva.redback.common.ldap.connection.LdapConnection;
import
org.apache.archiva.redback.common.ldap.connection.LdapConnectionConfiguration;
import org.apache.archiva.redback.common.ldap.connection.LdapConnectionFactory;
@@ -121,8 +123,20 @@ public class DefaultArchivaRuntimeConfig
cookieSettings.initialize();
}
+ Collection<Authenticator> authenticators =
+ applicationContext.getBeansOfType( Authenticator.class
).values();
+
+ for ( Authenticator authenticator : authenticators )
+ {
+ authenticator.initialize();
+ }
+
return Boolean.TRUE;
}
+ catch ( AuthenticationException e )
+ {
+ throw new ArchivaRestServiceException( e.getMessage(), e );
+ }
catch ( RepositoryAdminException e )
{
throw new ArchivaRestServiceException( e.getMessage(), e );
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=1421476&r1=1421475&r2=1421476&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
Thu Dec 13 20:05:51 2012
@@ -20,6 +20,7 @@ package org.apache.archiva.web.security;
import org.apache.archiva.admin.model.RepositoryAdminException;
import org.apache.archiva.admin.model.runtime.ArchivaRuntimeConfigurationAdmin;
+import org.apache.archiva.redback.authentication.AbstractAuthenticator;
import org.apache.archiva.redback.authentication.AuthenticationConstants;
import org.apache.archiva.redback.authentication.AuthenticationDataSource;
import org.apache.archiva.redback.authentication.AuthenticationException;
@@ -52,8 +53,9 @@ import java.util.Map;
* @author Olivier Lamy
* @since 1.4-M4
*/
-@Service( "authenticator#archiva" )
+@Service("authenticator#archiva")
public class ArchivaUserManagerAuthenticator
+ extends AbstractAuthenticator
implements Authenticator
{
private Logger log = LoggerFactory.getLogger( getClass() );
@@ -70,17 +72,25 @@ public class ArchivaUserManagerAuthentic
private List<UserManager> userManagers;
@PostConstruct
- protected void initialize()
- throws RepositoryAdminException
+ @Override
+ public void initialize()
+ throws AuthenticationException
{
- List<String> userManagerImpls =
-
archivaRuntimeConfigurationAdmin.getArchivaRuntimeConfiguration().getUserManagerImpls();
+ try
+ {
+ List<String> userManagerImpls =
+
archivaRuntimeConfigurationAdmin.getArchivaRuntimeConfiguration().getUserManagerImpls();
- userManagers = new ArrayList<UserManager>( userManagerImpls.size() );
+ userManagers = new ArrayList<UserManager>( userManagerImpls.size()
);
- for ( String beanId : userManagerImpls )
+ for ( String beanId : userManagerImpls )
+ {
+ userManagers.add( applicationContext.getBean( "userManager#" +
beanId, UserManager.class ) );
+ }
+ }
+ catch ( RepositoryAdminException e )
{
- userManagers.add( applicationContext.getBean( "userManager#" +
beanId, UserManager.class ) );
+ throw new AuthenticationException( e.getMessage(), e );
}
}