[java-identity-provider] 03/05: IDP-1181 failFast becomes failFastInitialize for all data connectors

Rod Widdowson rdw at steadingsoftware.com
Thu Sep 26 10:43:02 EDT 2019


This is an automated email from the git hooks/post-receive script.

rdw pushed a commit to branch master
in repository java-identity-provider.

View the commit online:
http://git.shibboleth.net/view/?p=java-identity-provider.git;a=commit;h=e233c0d3a2a925c17e3940f47c49153a57a29938

commit e233c0d3a2a925c17e3940f47c49153a57a29938
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Wed Sep 25 16:28:16 2019 +0100

    IDP-1181 failFast becomes failFastInitialize for all data connectors
    
    https://issues.shibboleth.net/jira/browse/IDP-1181
    
    This is a change on not shipped code, so no deprecation needed.
---
 .../resolver/dc/impl/AbstractSearchDataConnector.java    | 16 ++++++++--------
 .../resolver/dc/ldap/impl/LDAPDataConnector.java         |  4 ++--
 .../resolver/dc/rdbms/impl/RDBMSDataConnector.java       |  4 ++--
 .../resolver/dc/ldap/impl/LDAPDataConnectorTest.java     |  6 +++---
 .../resolver/dc/rdbms/impl/RDBMSDataConnectorTest.java   |  4 ++--
 .../resolver/spring/dc/AbstractDataConnectorParser.java  |  4 ++--
 .../spring/dc/ldap/LDAPDataConnectorParserTest.java      |  5 ++++-
 .../spring/dc/rdbms/RDBMSDataConnectorParserTest.java    |  4 ++++
 .../ldap/resolver/ldap-attribute-resolver-v2-minimal.xml |  1 +
 .../dc/ldap/resolver/ldap-attribute-resolver-v2.xml      |  1 +
 .../resolver/rdbms-attribute-resolver-v2-simple.xml      |  1 +
 .../dc/rdbms/resolver/rdbms-attribute-resolver-v2.xml    |  1 +
 .../resources/schema/shibboleth-attribute-resolver.xsd   | 13 +++++++------
 13 files changed, 38 insertions(+), 26 deletions(-)

diff --git a/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/impl/AbstractSearchDataConnector.java b/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/impl/AbstractSearchDataConnector.java
index 644f852..fc66f70 100644
--- a/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/impl/AbstractSearchDataConnector.java
+++ b/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/impl/AbstractSearchDataConnector.java
@@ -68,8 +68,8 @@ public abstract class AbstractSearchDataConnector<T1 extends ExecutableSearch,T2
     /** Query result cache. */
     @Nullable private Cache<String,Map<String,IdPAttribute>> resultsCache;
     
-    /** Does DataConnector fail fast.*/
-    private boolean failFast;
+    /** Does DataConnector fail fast on Initialize.*/
+    private boolean failFastInitialize;
 
     /**
      * Gets the builder used to create executable searches.
@@ -223,16 +223,16 @@ public abstract class AbstractSearchDataConnector<T1 extends ExecutableSearch,T2
     }
 
     /** Does the data connector fails fast.
-     * @return Returns whether the data connector fails fast.
+     * @return Returns whether the data connector fails fast (on initialize)
      */
-    public boolean isFailFast() {
-        return failFast;
+    public boolean isFailFastInitialize() {
+        return failFastInitialize;
     }
 
-    /** Whether the data connector fails fast.
+    /** Whether the data connector fails fast (on initialize).
      * @param what what to set
      */
-    public void setFailFast(final boolean what) {
-        failFast = what;
+    public void setFailFastInitialize(final boolean what) {
+        failFastInitialize = what;
     }
 }
diff --git a/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/ldap/impl/LDAPDataConnector.java b/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/ldap/impl/LDAPDataConnector.java
index 46b7a64..c48914b 100644
--- a/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/ldap/impl/LDAPDataConnector.java
+++ b/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/ldap/impl/LDAPDataConnector.java
@@ -139,7 +139,7 @@ public class LDAPDataConnector extends AbstractSearchDataConnector<ExecutableSea
             validator.setConnectionFactory(connectionFactory);
             super.setValidator(validator);
         }
-        getValidator().setThrowValidateError(isFailFast());
+        getValidator().setThrowValidateError(isFailFastInitialize());
         if (defaultMappingStrategy) {
             super.setMappingStrategy(new StringAttributeValueMappingStrategy());
         }
@@ -149,7 +149,7 @@ public class LDAPDataConnector extends AbstractSearchDataConnector<ExecutableSea
             getValidator().validate();
         } catch (final ValidationException e) {
             log.error("{} Invalid connector configuration", getLogPrefix(), e);
-            if (isFailFast()) {
+            if (isFailFastInitialize()) {
                 // Should always follow this leg.
                 throw new ComponentInitializationException(getLogPrefix() + " Invalid connector configuration", e);
             }
diff --git a/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/rdbms/impl/RDBMSDataConnector.java b/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/rdbms/impl/RDBMSDataConnector.java
index 50ccefa..830c377 100644
--- a/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/rdbms/impl/RDBMSDataConnector.java
+++ b/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/rdbms/impl/RDBMSDataConnector.java
@@ -104,7 +104,7 @@ public class RDBMSDataConnector extends AbstractSearchDataConnector<ExecutableSt
         if (defaultValidator) {
             final DataSourceValidator validator = new DataSourceValidator();
             validator.setDataSource(dataSource);
-            validator.setThrowValidateError(isFailFast());
+            validator.setThrowValidateError(isFailFastInitialize());
             validator.initialize();
             super.setValidator(validator);
         }
@@ -117,7 +117,7 @@ public class RDBMSDataConnector extends AbstractSearchDataConnector<ExecutableSt
             getValidator().validate();
         } catch (final ValidationException e) {
             log.error("{} Invalid connector configuration", getLogPrefix(), e);
-            if (isFailFast()) {
+            if (isFailFastInitialize()) {
                 throw new ComponentInitializationException(getLogPrefix() + " Invalid connector configuration", e);
             }
         }
diff --git a/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/ldap/impl/LDAPDataConnectorTest.java b/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/ldap/impl/LDAPDataConnectorTest.java
index d1b22b3..5d43540 100644
--- a/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/ldap/impl/LDAPDataConnectorTest.java
+++ b/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/ldap/impl/LDAPDataConnectorTest.java
@@ -145,7 +145,7 @@ public class LDAPDataConnectorTest {
         } catch (final ComponentInitializationException e) {
             // OK
         }
-        connector.setFailFast(true);
+        connector.setFailFastInitialize(true);
 
         final SearchExecutor searchExecutor = new SearchExecutor();
         searchExecutor.setBaseDn(TEST_BASE_DN);
@@ -202,7 +202,7 @@ public class LDAPDataConnectorTest {
         connector.setConnectionFactory(connectionFactory);
         connector.setSearchExecutor(new SearchExecutor());
         connector.setExecutableSearchBuilder(newParameterizedExecutableSearchFilterBuilder("(uid={principalName})"));
-        connector.setFailFast(true);
+        connector.setFailFastInitialize(true);
 
         try {
             connector.initialize();
@@ -211,7 +211,7 @@ public class LDAPDataConnectorTest {
             // OK
         }
 
-        connector.setFailFast(false);
+        connector.setFailFastInitialize(false);
         connector.initialize();
     }
 
diff --git a/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/rdbms/impl/RDBMSDataConnectorTest.java b/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/rdbms/impl/RDBMSDataConnectorTest.java
index ae09f3b..bd794b6 100644
--- a/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/rdbms/impl/RDBMSDataConnectorTest.java
+++ b/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/rdbms/impl/RDBMSDataConnectorTest.java
@@ -140,7 +140,7 @@ public class RDBMSDataConnectorTest {
 
         final ExecutableSearchBuilder<ExecutableStatement> statementBuilder = newFormatExecutableStatementBuilder(USER_QUERY);
         connector.setExecutableSearchBuilder(statementBuilder);
-        connector.setFailFast(true);
+        connector.setFailFastInitialize(true);
         try {
             connector.initialize();
             fail("Invalid datasource");
@@ -178,7 +178,7 @@ public class RDBMSDataConnectorTest {
         final ExecutableSearchBuilder<ExecutableStatement> statementBuilder = newFormatExecutableStatementBuilder(USER_QUERY);
         connector.setExecutableSearchBuilder(statementBuilder);
         connector.setDataSource(new JDBCDataSource());
-        connector.setFailFast(true);
+        connector.setFailFastInitialize(true);
         try {
             connector.initialize();
             fail("No failfast");
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/AbstractDataConnectorParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/AbstractDataConnectorParser.java
index d9874b7..7e6ab92 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/AbstractDataConnectorParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/AbstractDataConnectorParser.java
@@ -87,7 +87,7 @@ public abstract class AbstractDataConnectorParser extends BaseResolverPluginPars
     /**
      * Failfast LDAP, Realtional, Stored.
      */
-    @Nonnull @NotEmpty public static final String ATTR_FAIL_FAST = "failFast";
+    @Nonnull @NotEmpty public static final String ATTR_FAIL_FAST = "failFastInitialize";
 
     /** Failover data connector attribute name. */
     @Nonnull public static final QName FAILOVER_DATA_CONNECTOR_ELEMENT_NAME = new QName(
@@ -159,7 +159,7 @@ public abstract class AbstractDataConnectorParser extends BaseResolverPluginPars
 
         if (config.hasAttributeNS(null, ATTR_FAIL_FAST)) {
             // LDAP, Relational & HTTP only, limited in the schema
-            builder.addPropertyValue("failFast", 
+            builder.addPropertyValue("failFastInitialize", 
                     StringSupport.trimOrNull(config.getAttributeNS(null, ATTR_FAIL_FAST)));
         }
 
diff --git a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/LDAPDataConnectorParserTest.java b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/LDAPDataConnectorParserTest.java
index 1480986..c4c5aee 100644
--- a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/LDAPDataConnectorParserTest.java
+++ b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/LDAPDataConnectorParserTest.java
@@ -138,6 +138,7 @@ public class LDAPDataConnectorParserTest {
         final LDAPDataConnector dataConnector =
                 getLdapDataConnector(new String[] {"net/shibboleth/idp/attribute/resolver/spring/dc/ldap/resolver/ldap-attribute-resolver-v2.xml"});
         assertNotNull(dataConnector);
+        assertFalse(dataConnector.isFailFastInitialize());
         doTest(dataConnector);
         final StringAttributeValueMappingStrategy mappingStrategy =
                 (StringAttributeValueMappingStrategy) dataConnector.getMappingStrategy();
@@ -186,6 +187,7 @@ public class LDAPDataConnectorParserTest {
         final LDAPDataConnector dataConnector =
                 getLdapDataConnector(new String[] {"net/shibboleth/idp/attribute/resolver/spring/dc/ldap/resolver/ldap-attribute-resolver-v2-minimal.xml"});
         assertNotNull(dataConnector);
+        assertTrue(dataConnector.isFailFastInitialize());
         assertEquals(Duration.ZERO, dataConnector.getNoRetryDelay());
         final DefaultConnectionFactory connFactory = (DefaultConnectionFactory) dataConnector.getConnectionFactory();
         assertNotNull(connFactory);
@@ -218,7 +220,7 @@ public class LDAPDataConnectorParserTest {
 
         final ConnectionFactoryValidator validator = (ConnectionFactoryValidator) dataConnector.getValidator();
         assertNotNull(validator);
-        assertFalse(validator.isThrowValidateError());
+        assertTrue(validator.isThrowValidateError());
         assertNotNull(validator.getConnectionFactory());
 
         final ExecutableSearchBuilder<?> searchBuilder = dataConnector.getExecutableSearchBuilder();
@@ -244,6 +246,7 @@ public class LDAPDataConnectorParserTest {
         final LDAPDataConnector dataConnector =
                 getLdapDataConnector(new String[] {"net/shibboleth/idp/attribute/resolver/spring/dc/ldap/resolver/ldap-attribute-resolver-v2-minimal-pool.xml"});
         assertNotNull(dataConnector);
+        assertFalse(dataConnector.isFailFastInitialize());
         assertEquals(Duration.ZERO, dataConnector.getNoRetryDelay());
         final PooledConnectionFactory connFactory = (PooledConnectionFactory) dataConnector.getConnectionFactory();
         assertNotNull(connFactory);
diff --git a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/RDBMSDataConnectorParserTest.java b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/RDBMSDataConnectorParserTest.java
index 2442ffc..bce82e1 100644
--- a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/RDBMSDataConnectorParserTest.java
+++ b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/RDBMSDataConnectorParserTest.java
@@ -18,6 +18,7 @@
 package net.shibboleth.idp.attribute.resolver.spring.dc.rdbms;
 
 import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
 import static org.testng.Assert.assertNotNull;
 import static org.testng.Assert.assertTrue;
 
@@ -98,6 +99,7 @@ public class RDBMSDataConnectorParserTest {
         final RDBMSDataConnector dataConnector =
                 getRdbmsDataConnector("net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/resolver/rdbms-attribute-resolver-v2-simple.xml");
         assertNotNull(dataConnector);
+        assertTrue(dataConnector.isFailFastInitialize());
         doTest(dataConnector);
         final StringResultMappingStrategy mappingStrategy = (StringResultMappingStrategy) dataConnector.getMappingStrategy();
         assertEquals(mappingStrategy.getResultRenamingMap().size(), 1);
@@ -109,6 +111,7 @@ public class RDBMSDataConnectorParserTest {
         final RDBMSDataConnector dataConnector =
                 getRdbmsDataConnector("net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/resolver/rdbms-attribute-resolver-v2.xml");
         assertNotNull(dataConnector);
+        assertFalse(dataConnector.isFailFastInitialize());
         doTest(dataConnector);
         final StringResultMappingStrategy mappingStrategy = (StringResultMappingStrategy) dataConnector.getMappingStrategy();
         assertEquals(mappingStrategy.getResultRenamingMap().size(), 1);
@@ -122,6 +125,7 @@ public class RDBMSDataConnectorParserTest {
                         "net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/resolver/rdbms-attribute-resolver-v2-hybrid.xml",
                         "net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/rdbms-attribute-resolver-spring-context.xml");
         assertNotNull(dataConnector);
+        assertFalse(dataConnector.isFailFastInitialize());
         doTest(dataConnector);
         final StringResultMappingStrategy mappingStrategy = (StringResultMappingStrategy) dataConnector.getMappingStrategy();
         assertEquals(mappingStrategy.getResultRenamingMap().size(), 1);
diff --git a/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/resolver/ldap-attribute-resolver-v2-minimal.xml b/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/resolver/ldap-attribute-resolver-v2-minimal.xml
index 90ca7a8..262537d 100644
--- a/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/resolver/ldap-attribute-resolver-v2-minimal.xml
+++ b/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/resolver/ldap-attribute-resolver-v2-minimal.xml
@@ -6,6 +6,7 @@
     <DataConnector id="myLDAP" xsi:type="LDAPDirectory"
         ldapURL="ldap://localhost:10389"
         principal="cn=Directory Manager"
+        failFastInitialize="true"
         principalCredential="password">
         <FilterTemplate>
             <![CDATA[
diff --git a/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/resolver/ldap-attribute-resolver-v2.xml b/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/resolver/ldap-attribute-resolver-v2.xml
index e8af468..508ddfd 100644
--- a/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/resolver/ldap-attribute-resolver-v2.xml
+++ b/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/resolver/ldap-attribute-resolver-v2.xml
@@ -8,6 +8,7 @@
         baseDN="ou=people,dc=shibboleth,dc=net" 
         principal="cn=Directory Manager"
         principalCredential="password"
+        failFastInitialize="false"
         useStartTLS="true"
         searchTimeLimit="PT7S"
         noResultIsError="true"
diff --git a/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/resolver/rdbms-attribute-resolver-v2-simple.xml b/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/resolver/rdbms-attribute-resolver-v2-simple.xml
index 3f9878e..664abf2 100644
--- a/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/resolver/rdbms-attribute-resolver-v2-simple.xml
+++ b/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/resolver/rdbms-attribute-resolver-v2-simple.xml
@@ -5,6 +5,7 @@
 
     <DataConnector id="myDatabase" xsi:type="RelationalDatabase"
         noResultIsError="true"
+        failFastInitialize="true"
         multipleResultsIsError="true"
         readOnlyConnection="false"
         noRetryDelay="PT5M">
diff --git a/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/resolver/rdbms-attribute-resolver-v2.xml b/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/resolver/rdbms-attribute-resolver-v2.xml
index 6ee5537..9376b1e 100644
--- a/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/resolver/rdbms-attribute-resolver-v2.xml
+++ b/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/resolver/rdbms-attribute-resolver-v2.xml
@@ -5,6 +5,7 @@
 
     <DataConnector id="myDatabase" xsi:type="RelationalDatabase"
         noResultIsError="true"
+        failFastInitialize="false"
         multipleResultsIsError="true"
         noRetryDelay="PT5M">
 
diff --git a/idp-schema/src/main/resources/schema/shibboleth-attribute-resolver.xsd b/idp-schema/src/main/resources/schema/shibboleth-attribute-resolver.xsd
index 0db683b..29773d8 100644
--- a/idp-schema/src/main/resources/schema/shibboleth-attribute-resolver.xsd
+++ b/idp-schema/src/main/resources/schema/shibboleth-attribute-resolver.xsd
@@ -981,10 +981,10 @@
                         </documentation>
                     </annotation>
                 </attribute>
-                <attribute name="failFast" type="resolver:string">
+                <attribute name="failFastInitialize" type="resolver:string">
                     <annotation>
                         <documentation>
-                            Whether to fail if the store cannot be verified at startup (defaults to false).
+                            Whether to fail if the LDAP server cannot be verified at startup (defaults to false).
                         </documentation>
                     </annotation>
                 </attribute>
@@ -1133,10 +1133,10 @@
                         </documentation>
                     </annotation>
                 </attribute>
-                <attribute name="failFast" type="resolver:string">
+                <attribute name="failFastInitialize" type="resolver:string">
                     <annotation>
                         <documentation>
-                            Whether to fail if the store cannot be verified at startup (defaults to false).
+                            Whether to fail if the DataConnector cannot be verified at startup (defaults to false).
                         </documentation>
                     </annotation>
                 </attribute>
@@ -1307,10 +1307,11 @@
                         </documentation>
                     </annotation>
                 </attribute>
-                <attribute name="failFast" type="resolver:string">
+                <attribute name="failFastInitialize" type="resolver:string">
                     <annotation>
                         <documentation>
-                            Whether to fail if the store cannot be verified at startup (defaults to false).
+                            Whether to fail if the HTTP server cannot be verified at startup (defaults to false).
+                            No verification takes place currently.
                         </documentation>
                     </annotation>
                 </attribute>

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list