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

noreply at shibboleth.net noreply at shibboleth.net
Thu Feb 9 09:40:23 EST 2017


Author: rdw
Date: Thu Feb  9 09:40:23 2017
New Revision: 8616

URL: http://svn.shibboleth.net/view/java-identity-provider?rev=8616&view=rev
Log:
IDP-680 Final tidy

https://issues.shibboleth.net/jira/browse/IDP-680

Take more care about what behavior happens in the attribute resolution.

If the dependency is for a data connector we don't need to look up the
attributes list and so forth.

Also remove the cruft late injection of the sourceAttributeID name into
attribute dependencies.

Modified:
    trunk/idp-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/AbstractAttributeDefinition.java
    trunk/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/impl/AttributeResolverImpl.java
    trunk/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/impl/AttributeResolverImplTest.java

Modified: trunk/idp-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/AbstractAttributeDefinition.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/AbstractAttributeDefinition.java?rev=8616&r1=8615&r2=8616&view=diff
==============================================================================
--- trunk/idp-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/AbstractAttributeDefinition.java	(original)
+++ trunk/idp-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/AbstractAttributeDefinition.java	Thu Feb  9 09:40:23 2017
@@ -213,7 +213,13 @@
         // will correctly rehash the dependencies.
         if (null != getSourceAttributeId()) {
             for (final ResolverPluginDependency depends : getDependencies()) {
-                depends.setDependencyAttributeId(getSourceAttributeId());
+                if (depends instanceof ResolverAttributeDefinitionDependency) {
+                    // No work needed.  The name is the reference 
+                } else if (depends instanceof ResolverDataConnectorDependency) {
+                    // No work needed.  The names are stored elsewhere 
+                } else {
+                    depends.setDependencyAttributeId(getSourceAttributeId());
+                }
             }
         }
         super.doInitialize();

Modified: trunk/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/impl/AttributeResolverImpl.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/impl/AttributeResolverImpl.java?rev=8616&r1=8615&r2=8616&view=diff
==============================================================================
--- trunk/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/impl/AttributeResolverImpl.java	(original)
+++ trunk/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/impl/AttributeResolverImpl.java	Thu Feb  9 09:40:23 2017
@@ -39,6 +39,8 @@
 import net.shibboleth.idp.attribute.resolver.LegacyPrincipalDecoder;
 import net.shibboleth.idp.attribute.resolver.ResolutionException;
 import net.shibboleth.idp.attribute.resolver.ResolvedAttributeDefinition;
+import net.shibboleth.idp.attribute.resolver.ResolverAttributeDefinitionDependency;
+import net.shibboleth.idp.attribute.resolver.ResolverDataConnectorDependency;
 import net.shibboleth.idp.attribute.resolver.ResolverPlugin;
 import net.shibboleth.idp.attribute.resolver.ResolverPluginDependency;
 import net.shibboleth.idp.attribute.resolver.context.AttributeResolutionContext;
@@ -410,10 +412,13 @@
 
         log.debug("{} Resolving dependencies for '{}'", logPrefix, plugin.getId());
 
-        String pluginId;
         for (final ResolverPluginDependency dependency : plugin.getDependencies()) {
-            pluginId = dependency.getDependencyPluginId();
-            if (attributeDefinitions.containsKey(pluginId)) {
+            final String pluginId = dependency.getDependencyPluginId();
+            if (dependency instanceof ResolverAttributeDefinitionDependency) {
+                resolveAttributeDefinition(pluginId, resolutionContext);                
+            } else if (dependency instanceof ResolverDataConnectorDependency) {
+                resolveDataConnector(pluginId, resolutionContext);
+            } else if (attributeDefinitions.containsKey(pluginId)) {
                 resolveAttributeDefinition(pluginId, resolutionContext);
             } else if (dataConnectors.containsKey(pluginId)) {
                 resolveDataConnector(pluginId, resolutionContext);
@@ -542,14 +547,23 @@
                         + "' and plugin '" + dependency.getDependencyPluginId()
                         + "' have a circular dependecy on each other.");
             }
-
-            dependencyPlugin = attributeDefinitions.get(dependency.getDependencyPluginId());
-            if (dependencyPlugin == null) {
-                dependencyPlugin = dataConnectors.get(dependency.getDependencyPluginId());
+            final String dependencyType;

[... 253 lines stripped ...]


More information about the commits mailing list