[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