[java-identity-provider] 04/04: IDP-2037 Computed, Pairwise and StoredId DataConnectors to not implement all the common attributes

Rod Widdowson rdw at steadingsoftware.com
Sat Nov 12 16:24:37 UTC 2022


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

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

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

commit fe1a1a509005ae3d12d64ae2c19c9231d9849243
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Sat Nov 12 15:59:43 2022 +0000

    IDP-2037 Computed, Pairwise and StoredId DataConnectors to not implement all the common attributes
    
    https://shibboleth.atlassian.net/browse/IDP-2037
    
    Add test, then make the pairwise parser inherit from the abstract data connector parser
    (with suitable adjustments to the other parsers).
---
 .../resolver/spring/dc/impl/ComputedIdDataConnectorParser.java    | 2 +-
 .../resolver/spring/dc/impl/PairwiseIdDataConnectorParser.java    | 8 +++-----
 .../resolver/spring/dc/impl/StoredIdDataConnectorParser.java      | 2 +-
 .../resolver/spring/dc/ComputedIdDataConnectorParserTest.java     | 7 ++++++-
 .../resolver/spring/dc/resolver/computedDataConnector.xml         | 2 +-
 5 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ComputedIdDataConnectorParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ComputedIdDataConnectorParser.java
index bfbdeacf5..1b3c78106 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ComputedIdDataConnectorParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ComputedIdDataConnectorParser.java
@@ -43,7 +43,7 @@ public class ComputedIdDataConnectorParser extends PairwiseIdDataConnectorParser
     @Nonnull private final Logger log = LoggerFactory.getLogger(ComputedIdDataConnectorParser.class);
     
     /** {@inheritDoc} */
-    @Override protected void doParse(@Nonnull final Element config, @Nonnull final ParserContext parserContext,
+    @Override protected void doV2Parse(@Nonnull final Element config, @Nonnull final ParserContext parserContext,
             @Nonnull final BeanDefinitionBuilder builder) {
         super.doParse(config, parserContext, builder, "computedId");
 
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/PairwiseIdDataConnectorParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/PairwiseIdDataConnectorParser.java
index c0185552c..fe3de2b17 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/PairwiseIdDataConnectorParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/PairwiseIdDataConnectorParser.java
@@ -30,7 +30,6 @@ import org.springframework.beans.factory.xml.ParserContext;
 import org.w3c.dom.Element;
 
 import net.shibboleth.idp.attribute.resolver.dc.impl.PairwiseIdDataConnector;
-import net.shibboleth.idp.attribute.resolver.spring.BaseResolverPluginParser;
 import net.shibboleth.idp.attribute.resolver.spring.dc.AbstractDataConnectorParser;
 import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
 import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
@@ -41,7 +40,7 @@ import net.shibboleth.utilities.java.support.xml.ElementSupport;
  * Spring bean definition parser for configuring
  * {@link net.shibboleth.idp.attribute.resolver.dc.impl.PairwiseIdDataConnector} variants.
  */
-public class PairwiseIdDataConnectorParser extends BaseResolverPluginParser {
+public class PairwiseIdDataConnectorParser extends AbstractDataConnectorParser {
 
     /** Schema type - resolver. */
     @Nonnull public static final QName TYPE_NAME_RESOLVER = new QName(AttributeResolverNamespaceHandler.NAMESPACE, 
@@ -51,12 +50,12 @@ public class PairwiseIdDataConnectorParser extends BaseResolverPluginParser {
     @Nonnull private final Logger log = LoggerFactory.getLogger(PairwiseIdDataConnectorParser.class);
 
     /** {@inheritDoc} */
-    @Override protected Class<PairwiseIdDataConnector> getBeanClass(final Element element) {
+    @Override protected Class<PairwiseIdDataConnector> getNativeBeanClass() {
         return PairwiseIdDataConnector.class;
     }
 
     /** {@inheritDoc} */
-    @Override protected void doParse(@Nonnull final Element config, @Nonnull final ParserContext parserContext,
+    @Override protected void doV2Parse(@Nonnull final Element config, @Nonnull final ParserContext parserContext,
             @Nonnull final BeanDefinitionBuilder builder) {
         doParse(config, parserContext, builder, "pairwiseId");
     }
@@ -71,7 +70,6 @@ public class PairwiseIdDataConnectorParser extends BaseResolverPluginParser {
      */
     protected void doParse(@Nonnull final Element config, @Nonnull final ParserContext parserContext,
             @Nonnull final BeanDefinitionBuilder builder, @Nullable final String generatedIdDefaultName) {
-        super.doParse(config, parserContext, builder);
         
         final String generatedAttribute;
         if (config.hasAttributeNS(null, "generatedAttributeID")) {
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StoredIdDataConnectorParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StoredIdDataConnectorParser.java
index 8814c76ab..a30e8979f 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StoredIdDataConnectorParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StoredIdDataConnectorParser.java
@@ -47,7 +47,7 @@ public class StoredIdDataConnectorParser extends ComputedIdDataConnectorParser {
     @Nonnull private final Logger log = LoggerFactory.getLogger(StoredIdDataConnectorParser.class);
 
     /** {@inheritDoc} */
-    @Override protected void doParse(@Nonnull final Element config, @Nonnull final ParserContext parserContext,
+    @Override protected void doV2Parse(@Nonnull final Element config, @Nonnull final ParserContext parserContext,
             @Nonnull final BeanDefinitionBuilder builder) {
         super.doParse(config, parserContext, builder, "storedId");
 
diff --git a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/ComputedIdDataConnectorParserTest.java b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/ComputedIdDataConnectorParserTest.java
index dbbbac018..0523504ef 100644
--- a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/ComputedIdDataConnectorParserTest.java
+++ b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/ComputedIdDataConnectorParserTest.java
@@ -21,6 +21,8 @@ import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertFalse;
 import static org.testng.Assert.assertTrue;
 
+import java.util.Collection;
+
 import org.springframework.context.support.GenericApplicationContext;
 import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
 import org.springframework.core.env.MutablePropertySources;
@@ -61,7 +63,10 @@ public class ComputedIdDataConnectorParserTest extends BaseAttributeDefinitionPa
         final PairwiseIdDataConnector connector = getDataConnector("resolver/computedDataConnector.xml", PairwiseIdDataConnector.class);
         final ComputedPairwiseIdStore store = (ComputedPairwiseIdStore) connector.getPairwiseIdStore();
         assertFalse(connector.isExportAllAttributes());
-
+        final Collection<String> exports = connector.getExportAttributes();
+        assertEquals(exports.size(), 2);
+        assertTrue(exports.contains("Joe"));
+        assertTrue(exports.contains("Doe"));
         assertEquals(connector.getId(), "computed");
         assertEquals(connector.getGeneratedAttributeId(), "jenny");
         assertEquals(store.getSalt(), "abcdefghijklmnopqrst ".getBytes());
diff --git a/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/resolver/computedDataConnector.xml b/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/resolver/computedDataConnector.xml
index 8a8e4841b..5825391c1 100644
--- a/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/resolver/computedDataConnector.xml
+++ b/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/resolver/computedDataConnector.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <DataConnector id="computed"
 	xsi:type="ComputedId" xmlns="urn:mace:shibboleth:2.0:resolver" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	
+	exportAttributes="Joe Doe"
 	generatedAttributeID="jenny"
 	encodedSalt="YWJjZGVmZ2hpamtsbW5vcHFyc3Qg"
 	xsi:schemaLocation="urn:mace:shibboleth:2.0:resolver http://shibboleth.net/schema/idp/shibboleth-attribute-resolver.xsd">

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


More information about the commits mailing list