[java-identity-provider COMMIT] in /trunk/idp-attribute-resolver-spring/src: main/java/net/shibboleth/idp/attribute/r...

noreply at shibboleth.net noreply at shibboleth.net
Fri Jul 29 00:42:02 EDT 2016


Author: dfisher
Date: Fri Jul 29 00:42:02 2016
New Revision: 8307

URL: http://svn.shibboleth.net/view/java-identity-provider?rev=8307&view=rev
Log:
IDP-1010 validatePeriodically required

Only add a search validator to the pool if validatePeriodically is true.
Add unit tests for minimal configuration.

Added:
    trunk/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/ldap-attribute-resolver-v2-minimal-pool.xml
    trunk/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/ldap-attribute-resolver-v2-minimal.xml
Modified:
    trunk/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java
    trunk/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/LDAPDataConnectorParserTest.java

Modified: trunk/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java?rev=8307&r1=8306&r2=8307&view=diff
==============================================================================
--- trunk/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java	(original)
+++ trunk/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java	Fri Jul 29 00:42:02 2016
@@ -504,29 +504,14 @@
             }
             pool.addPropertyValue("poolConfig", createPoolConfig());
 
-            final String validateDN = AttributeSupport.getAttributeValue(poolConfigElement, new QName("validateDN"));
-            final String validateFilter =
-                    AttributeSupport.getAttributeValue(poolConfigElement, new QName("validateFilter"));
-
-            final BeanDefinitionBuilder searchRequest =
-                    BeanDefinitionBuilder.genericBeanDefinition(SearchRequest.class);
-            searchRequest.addPropertyValue("returnAttributes", "1.1");
-            searchRequest.addPropertyValue("searchScope", SearchScope.OBJECT);
-            searchRequest.addPropertyValue("sizeLimit", 1);
-            if (validateDN != null) {
-                searchRequest.addPropertyValue("baseDn", validateDN);
-            } else {
-                searchRequest.addPropertyValue("baseDn", "");
-            }
-            final BeanDefinitionBuilder searchFilter = BeanDefinitionBuilder.genericBeanDefinition(SearchFilter.class);
-            if (validateFilter != null) {
-                searchFilter.addConstructorArgValue(validateFilter);
-            } else {
-                searchFilter.addConstructorArgValue("(objectClass=*)");
-            }
-            searchRequest.addPropertyValue("searchFilter", searchFilter.getBeanDefinition());
-            final BeanDefinitionBuilder validator = BeanDefinitionBuilder.genericBeanDefinition(SearchValidator.class);
-            validator.addPropertyValue("searchRequest", searchRequest.getBeanDefinition());
+            final BeanDefinitionBuilder validator =
+                    BeanDefinitionBuilder.rootBeanDefinition(V2Parser.class, "buildSearchValidator");
+            validator.addConstructorArgValue(
+                    AttributeSupport.getAttributeValue(poolConfigElement, new QName("validatePeriodically")));
+            validator.addConstructorArgValue(
+                    AttributeSupport.getAttributeValue(poolConfigElement, new QName("validateDN")));
+            validator.addConstructorArgValue(
+                    AttributeSupport.getAttributeValue(poolConfigElement, new QName("validateFilter")));
             pool.addPropertyValue("validator", validator.getBeanDefinition());
 
             pool.addPropertyValue("connectionFactory", connectionFactory);
@@ -700,7 +685,7 @@
          * 
          * @return soft limit or blocking connection pool
          */
-        public static BlockingConnectionPool buildConnectionPool(final String blockWhenEmpty) {
+        @Nonnull public static BlockingConnectionPool buildConnectionPool(@Nullable final String blockWhenEmpty) {
             BlockingConnectionPool pool = null;
             if (blockWhenEmpty == null || Boolean.valueOf(blockWhenEmpty)) {
                 pool = new BlockingConnectionPool();
@@ -712,13 +697,49 @@
         }
 
         /**
+         * Returns a search validator or null if validatePeriodically is false.
+         *
+         * @param validatePeriodically whether to create a search validator
+         * @param validateDN baseDN to search on
+         * @param validateFilter to search with
+         *
+         * @return  search validator or null
+         */
+        @Nullable public static SearchValidator buildSearchValidator(@Nullable final String validatePeriodically,

[... 193 lines stripped ...]


More information about the commits mailing list