From 0cc2733ca000451ebc26f2f76178d64bfdc92f36 Mon Sep 17 00:00:00 2001 From: Martin Stockhammer Date: Tue, 4 Oct 2016 20:52:25 +0200 Subject: [PATCH] Adding isValid() method to authentication classes --- ...DefaultRedbackRuntimeConfigurationService.java | 7 ++++++- .../ldap/ArchivaLdapConnectionFactory.java | 15 ++++++++++++++- .../security/ArchivaUserManagerAuthenticator.java | 10 +++++++++- 3 files changed, 29 insertions(+), 3 deletions(-) diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRedbackRuntimeConfigurationService.java b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRedbackRuntimeConfigurationService.java index e319c3629..0284bb8f5 100644 --- a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRedbackRuntimeConfigurationService.java +++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRedbackRuntimeConfigurationService.java @@ -192,7 +192,12 @@ public class DefaultRedbackRuntimeConfigurationService for ( Authenticator authenticator : authenticators ) { - authenticator.initialize(); + try { + log.debug("Initializing authenticatior "+authenticator.getId()); + authenticator.initialize(); + } catch (Exception e) { + log.error("Initialization of authenticator failed "+authenticator.getId(),e); + } } // users cache diff --git a/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/runtime/ldap/ArchivaLdapConnectionFactory.java b/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/runtime/ldap/ArchivaLdapConnectionFactory.java index cd15b1efa..45945f104 100644 --- a/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/runtime/ldap/ArchivaLdapConnectionFactory.java +++ b/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/runtime/ldap/ArchivaLdapConnectionFactory.java @@ -23,6 +23,8 @@ import org.apache.archiva.admin.model.beans.LdapConfiguration; import org.apache.archiva.admin.model.runtime.RedbackRuntimeConfigurationAdmin; import org.apache.archiva.redback.common.ldap.connection.ConfigurableLdapConnectionFactory; import org.apache.archiva.redback.common.ldap.connection.LdapConnectionConfiguration; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import javax.annotation.PostConstruct; @@ -40,6 +42,10 @@ public class ArchivaLdapConnectionFactory extends ConfigurableLdapConnectionFactory { + private final Logger log = LoggerFactory.getLogger(ArchivaLdapConnectionFactory.class); + + private boolean valid = false; + @Inject private RedbackRuntimeConfigurationAdmin redbackRuntimeConfigurationAdmin; @@ -63,10 +69,12 @@ public class ArchivaLdapConnectionFactory ldapConnectionConfiguration.setPassword( ldapConfiguration.getPassword() ); ldapConnectionConfiguration.setAuthenticationMethod( ldapConfiguration.getAuthenticationMethod() ); ldapConnectionConfiguration.setExtraProperties( toProperties( ldapConfiguration.getExtraProperties() ) ); + valid=true; } catch ( InvalidNameException e ) { - throw new RuntimeException( "Error while initializing connection factory.", e ); + log.error("Error during initialization of LdapConnectionFactory "+e.getMessage(),e); + // throw new RuntimeException( "Error while initializing connection factory.", e ); } catch ( RepositoryAdminException e ) { @@ -99,4 +107,9 @@ public class ArchivaLdapConnectionFactory { this.ldapConnectionConfiguration = ldapConnectionConfiguration; } + + @Override + public boolean isValid() { + return valid; + } } diff --git a/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaUserManagerAuthenticator.java b/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaUserManagerAuthenticator.java index 4d9325305..0a74e395b 100644 --- a/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaUserManagerAuthenticator.java +++ b/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaUserManagerAuthenticator.java @@ -67,6 +67,8 @@ public class ArchivaUserManagerAuthenticator private List userManagers; + private boolean valid = false; + @PostConstruct @Override public void initialize() @@ -83,10 +85,12 @@ public class ArchivaUserManagerAuthenticator { userManagers.add( applicationContext.getBean( "userManager#" + beanId, UserManager.class ) ); } + valid=true; } catch ( RepositoryAdminException e ) { - throw new AuthenticationException( e.getMessage(), e ); + log.error("Error during repository initialization "+e.getMessage(),e); + // throw new AuthenticationException( e.getMessage(), e ); } } @@ -225,4 +229,8 @@ public class ArchivaUserManagerAuthenticator { return "ArchivaUserManagerAuthenticator"; } + + public boolean isValid() { + return valid; + } }