[java-identity-provider COMMIT] in /trunk/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/re...
noreply at shibboleth.net
noreply at shibboleth.net
Thu Mar 17 07:27:37 EDT 2016
Author: rdw
Date: Thu Mar 17 07:27:37 2016
New Revision: 8164
URL: http://svn.shibboleth.net/view/java-identity-provider?rev=8164&view=rev
Log:
IDP-954 Add infrastructure to allow warns or fails on Dependencies
https://issues.shibboleth.net/jira/browse/IDP-954
Tests pending
Modified:
trunk/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/BaseResolverPluginParser.java
trunk/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/BaseAttributeDefinitionParser.java
trunk/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/AbstractDataConnectorParser.java
Modified: trunk/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/BaseResolverPluginParser.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/BaseResolverPluginParser.java?rev=8164&r1=8163&r2=8164&view=diff
==============================================================================
--- trunk/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/BaseResolverPluginParser.java (original)
+++ trunk/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/BaseResolverPluginParser.java Thu Mar 17 07:27:37 2016
@@ -28,6 +28,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.BeanCreationException;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser;
import org.springframework.beans.factory.xml.ParserContext;
@@ -55,7 +56,7 @@
@Override protected void doParse(@Nonnull final Element config, @Nonnull final ParserContext parserContext,
@Nonnull final BeanDefinitionBuilder builder) {
super.doParse(config, parserContext, builder);
- String id = StringSupport.trimOrNull(config.getAttributeNS(null, "id"));
+ final String id = StringSupport.trimOrNull(config.getAttributeNS(null, "id"));
log.info("Parsing configuration for {} plugin with id: {}", config.getLocalName(), id);
builder.addPropertyValue("id", id);
if (null != id) {
@@ -76,6 +77,48 @@
final List<Element> dependencyElements =
ElementSupport.getChildElements(config, ResolverPluginDependencyParser.ELEMENT_NAME);
+ if (null != dependencyElements && !dependencyElements.isEmpty()) {
+ if (failOnDependencies()) {
+ log.error("{} Dependencies are not allowed.", getLogPrefix());
+ throw new BeanCreationException(getLogPrefix() + " has meaningless Dependencies statements");
+ }
+ if (warnOnDependencies()) {
+ log.warn("{} Dependencies are not allowed.", getLogPrefix());
+ }
+ }
builder.addPropertyValue("dependencies", SpringSupport.parseCustomElements(dependencyElements, parserContext));
}
+
+ /** Controls parsing of Dependencies.
+ *
+ * If it is considered an invalid configuration for this resolver to have Dependency statements, return true.
+ * The surrounding logic will fail the parse.
+ * @return false - by default.
+ */
+ protected boolean failOnDependencies() {
+ return false;
+ }
+
+ /** Controls parsing of Dependencies.
+ *
+ * If it is considered an invalid configuration for this resolver to have Dependency statements, return true.
+ * The surrounding logic will issue warning.
+ * @return false - by default.
+ */
+ protected boolean warnOnDependencies() {
+ return false;
+ }
+
+ /**
+ * Return a string which is to be prepended to all log messages.
+ *
+ * This is always overridden by upper parsers, but to leave this abstract would break compatibility
+ *
+ * @return a basic prefix.
+ */
+ @Nonnull @NotEmpty protected String getLogPrefix() {
+ final StringBuilder builder = new StringBuilder("Unknown Plugin '").append(getDefinitionId()).append("':");
+ return builder.toString();
+ }
+
}
Modified: trunk/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/BaseAttributeDefinitionParser.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/BaseAttributeDefinitionParser.java?rev=8164&r1=8163&r2=8164&view=diff
==============================================================================
--- trunk/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/BaseAttributeDefinitionParser.java (original)
+++ trunk/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/BaseAttributeDefinitionParser.java Thu Mar 17 07:27:37 2016
@@ -83,7 +83,7 @@
}
[... 74 lines stripped ...]
More information about the commits
mailing list