aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Stockhammer <martin_s@apache.org>2016-10-04 20:52:25 +0200
committerMartin Stockhammer <martin_s@apache.org>2016-10-04 20:52:25 +0200
commit0cc2733ca000451ebc26f2f76178d64bfdc92f36 (patch)
treef847d717a750bc951a38a45cdd0b132b7e014498
parent1fd9c951e19a30f7636f4a924cb9e2bf06af2861 (diff)
downloadarchiva-validauth.tar.gz
archiva-validauth.zip
Adding isValid() method to authentication classesvalidauth
-rw-r--r--archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRedbackRuntimeConfigurationService.java7
-rw-r--r--archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/runtime/ldap/ArchivaLdapConnectionFactory.java15
-rw-r--r--archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaUserManagerAuthenticator.java10
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<UserManager> 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;
+ }
}