[java-shib-attribute] 05/05: WIP resolver Spring
Rod Widdowson
rdw at steadingsoftware.com
Wed May 3 13:53:32 UTC 2023
This is an automated email from the git hooks/post-receive script.
rdw pushed a commit to branch main
in repository java-shib-attribute.
View the commit online:
http://git.shibboleth.net/view/?p=java-shib-attribute.git;a=commit;h=48af6e74732ec8fd03f3e0bad1ca09d60e67fa1d
commit 48af6e74732ec8fd03f3e0bad1ca09d60e67fa1d
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Mon May 1 17:37:12 2023 +0100
WIP resolver Spring
---
.../resolver/spring/BaseResolverPluginParser.java | 31 +++++++++++++---------
.../spring/ad/BaseAttributeDefinitionParser.java | 4 ++-
.../spring/dc/AbstractDataConnectorParser.java | 11 +++++---
.../dc/http/impl/HTTPDataConnectorParser.java | 14 +++++-----
.../resolver/spring/dc/impl/CacheConfigParser.java | 5 ++--
.../dc/impl/StoredIdDataConnectorParser.java | 6 +++--
6 files changed, 43 insertions(+), 28 deletions(-)
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/BaseResolverPluginParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/BaseResolverPluginParser.java
index 5f6b1f35d..33eb6fef1 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/BaseResolverPluginParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/BaseResolverPluginParser.java
@@ -27,6 +27,7 @@ import org.slf4j.Logger;
import org.springframework.beans.factory.BeanCreationException;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.ParserContext;
+import org.w3c.dom.Attr;
import org.w3c.dom.Element;
import net.shibboleth.idp.attribute.resolver.logic.ResolutionLabelPredicate;
@@ -146,20 +147,22 @@ public abstract class BaseResolverPluginParser extends AbstractCustomBeanDefinit
BeanDefinitionBuilder rpBuilder = null;
BeanDefinitionBuilder phasesBuilder = null;
- if (config.hasAttributeNS(null, "relyingParties")) {
+ final Attr relyingPartiesAttr = config.getAttributeNodeNS(null, "relyingParties");
+ final Attr excludeRelyingPartiesAttr = config.getAttributeNodeNS(null, "excludeRelyingParties");
+ if (relyingPartiesAttr!=null) {
if (relyingPartyPredicateClass == null) {
log.warn("Ignoring relyingParties setting due to class instantiation failure at startup");
return null;
}
- if (config.hasAttributeNS(null, "excludeRelyingParties")) {
+ if (excludeRelyingPartiesAttr!=null) {
log.warn("excludeRelyingParties ignored, using relyingParties");
}
assert relyingPartyPredicateClass != null;
rpBuilder = BeanDefinitionBuilder.genericBeanDefinition(relyingPartyPredicateClass);
rpBuilder.setFactoryMethod(RELYING_PARTIES_PREDICATE_METHOD);
rpBuilder.addConstructorArgValue(
- SpringSupport.getAttributeValueAsList(config.getAttributeNodeNS(null, "relyingParties")));
- } else if (config.hasAttributeNS(null, "excludeRelyingParties")) {
+ SpringSupport.getAttributeValueAsList(relyingPartiesAttr));
+ } else if (excludeRelyingPartiesAttr != null) {
if (relyingPartyPredicateClass == null) {
log.warn("Ignoring excludeRelyingParties setting due to class instantiation failure at startup");
return null;
@@ -169,27 +172,27 @@ public abstract class BaseResolverPluginParser extends AbstractCustomBeanDefinit
BeanDefinitionBuilder.genericBeanDefinition(relyingPartyPredicateClass);
unnegated.setFactoryMethod(RELYING_PARTIES_PREDICATE_METHOD);
unnegated.addConstructorArgValue(
- SpringSupport.getAttributeValueAsList(
- config.getAttributeNodeNS(null, "excludeRelyingParties")));
+ SpringSupport.getAttributeValueAsList(excludeRelyingPartiesAttr));
rpBuilder = BeanDefinitionBuilder.genericBeanDefinition(PredicateSupport.class);
rpBuilder.setFactoryMethod("not");
rpBuilder.addConstructorArgValue(unnegated.getBeanDefinition());
}
- if (config.hasAttributeNS(null, "resolutionPhases")) {
- if (config.hasAttributeNS(null, "excludeResolutionPhases")) {
+ final Attr resolutionPhasesAttr = config.getAttributeNodeNS(null, "resolutionPhases");
+ final Attr excludeResolutionPhasesAttr = config.getAttributeNodeNS(null, "excludeResolutionPhases");
+ if (resolutionPhasesAttr!=null) {
+ if (excludeResolutionPhasesAttr!=null) {
log.warn("excludeResolutionPhases ignored, using resolutionPhases");
}
phasesBuilder = BeanDefinitionBuilder.genericBeanDefinition(ResolutionLabelPredicate.class);
phasesBuilder.addConstructorArgValue(
- SpringSupport.getAttributeValueAsList(config.getAttributeNodeNS(null, "resolutionPhases")));
- } else if (config.hasAttributeNS(null, "excludeResolutionPhases")) {
+ SpringSupport.getAttributeValueAsList(resolutionPhasesAttr));
+ } else if (excludeResolutionPhasesAttr!=null) {
final BeanDefinitionBuilder unnegated =
BeanDefinitionBuilder.genericBeanDefinition(ResolutionLabelPredicate.class);
unnegated.setFactoryMethod("byList");
unnegated.addConstructorArgValue(
- SpringSupport.getAttributeValueAsList(
- config.getAttributeNodeNS(null, "excludeResolutionPhases")));
+ SpringSupport.getAttributeValueAsList(excludeResolutionPhasesAttr));
phasesBuilder = BeanDefinitionBuilder.genericBeanDefinition(PredicateSupport.class);
phasesBuilder.setFactoryMethod("not");
phasesBuilder.addConstructorArgValue(unnegated.getBeanDefinition());
@@ -241,7 +244,9 @@ public abstract class BaseResolverPluginParser extends AbstractCustomBeanDefinit
*/
@Nonnull @NotEmpty protected String getLogPrefix() {
final StringBuilder builder = new StringBuilder("Unknown Plugin '").append(getDefinitionId()).append("':");
- return builder.toString();
+ final String result = builder.toString();
+ assert result != null;
+ return result;
}
}
\ No newline at end of file
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/BaseAttributeDefinitionParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/BaseAttributeDefinitionParser.java
index 627ce3fd1..0259b1cab 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/BaseAttributeDefinitionParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/BaseAttributeDefinitionParser.java
@@ -75,7 +75,9 @@ public abstract class BaseAttributeDefinitionParser extends BaseResolverPluginPa
@Override @Nonnull @NotEmpty protected String getLogPrefix() {
final StringBuilder builder = new StringBuilder("Attribute Definition '").append(getDefinitionId())
.append("':");
- return builder.toString();
+ final String result = builder.toString();
+ assert result != null;
+ return result;
}
}
\ No newline at end of file
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/AbstractDataConnectorParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/AbstractDataConnectorParser.java
index 5891126cc..398f7426b 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/AbstractDataConnectorParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/AbstractDataConnectorParser.java
@@ -25,6 +25,7 @@ import javax.xml.namespace.QName;
import org.slf4j.Logger;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.ParserContext;
+import org.w3c.dom.Attr;
import org.w3c.dom.Element;
import net.shibboleth.idp.attribute.resolver.spring.BaseResolverPluginParser;
@@ -91,9 +92,9 @@ public abstract class AbstractDataConnectorParser extends BaseResolverPluginPars
StringSupport.trimOrNull(config.getAttributeNS(null, ATTR_NORETRYDELAY)));
}
- if (config.hasAttributeNS(null, ATTR_EXPORT_NAMES)) {
- builder.addPropertyValue("exportAttributes",
- SpringSupport.getAttributeValueAsList(config.getAttributeNodeNS(null, ATTR_EXPORT_NAMES)));
+ final Attr export = config.getAttributeNodeNS(null, ATTR_EXPORT_NAMES);
+ if (export!=null) {
+ builder.addPropertyValue("exportAttributes", SpringSupport.getAttributeValueAsList(export));
}
}
@@ -105,6 +106,8 @@ public abstract class AbstractDataConnectorParser extends BaseResolverPluginPars
*/
@Override @Nonnull @NotEmpty protected String getLogPrefix() {
final StringBuilder builder = new StringBuilder("Data Connector '").append(getDefinitionId()).append("':");
- return builder.toString();
+ final String result = builder.toString();
+ assert result != null;
+ return result;
}
}
\ No newline at end of file
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/http/impl/HTTPDataConnectorParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/http/impl/HTTPDataConnectorParser.java
index 539587336..13a44fb6a 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/http/impl/HTTPDataConnectorParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/http/impl/HTTPDataConnectorParser.java
@@ -31,6 +31,7 @@ import org.slf4j.Logger;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.ParserContext;
+import org.w3c.dom.Attr;
import org.w3c.dom.Element;
import net.shibboleth.idp.attribute.resolver.dc.http.impl.HTTPDataConnector;
@@ -378,16 +379,17 @@ public class HTTPDataConnectorParser extends AbstractDataConnectorParser {
mapper.addPropertyValue("maxLength", maxLength);
}
- if (configElement.hasAttributeNS(null, "acceptStatuses")) {
+ final Attr acceptStatusesAttr = configElement.getAttributeNodeNS(null, "acceptStatuses");
+ if (acceptStatusesAttr!=null) {
mapper.addPropertyValue("acceptStatuses",
- SpringSupport.getAttributeValueAsList(
- configElement.getAttributeNodeNS(null, "acceptStatuses")));
+ SpringSupport.getAttributeValueAsList(acceptStatusesAttr));
}
- if (configElement.hasAttributeNS(null, "acceptTypes")) {
+ final Attr acceptTypesAttr = configElement.getAttributeNodeNS(null, "acceptTypes");
+
+ if (acceptTypesAttr!=null) {
mapper.addPropertyValue("acceptTypes",
- SpringSupport.getAttributeValueAsList(
- configElement.getAttributeNodeNS(null, "acceptTypes")));
+ SpringSupport.getAttributeValueAsList(acceptTypesAttr));
}
return mapper.getBeanDefinition();
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/CacheConfigParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/CacheConfigParser.java
index 831e255ea..3cc3cf387 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/CacheConfigParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/CacheConfigParser.java
@@ -212,8 +212,9 @@ public class CacheConfigParser {
LoggerFactory.getLogger(ManagedConnectionParser.class).
warn("<ResultCacheBean> is incompatible with <ResultCache>. The <ResultCacheBean> has been used");
}
-
- return StringSupport.trimOrNull(ElementSupport.getElementContentAsString(beanResultCache.get(0)));
+ final Element elem = beanResultCache.get(0);
+ assert elem != null;
+ return StringSupport.trimOrNull(ElementSupport.getElementContentAsString(elem));
}
}
\ No newline at end of file
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StoredIdDataConnectorParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StoredIdDataConnectorParser.java
index a3978b9d6..9e6d37c19 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StoredIdDataConnectorParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StoredIdDataConnectorParser.java
@@ -24,6 +24,7 @@ import org.slf4j.Logger;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.ParserContext;
+import org.w3c.dom.Attr;
import org.w3c.dom.Element;
import net.shibboleth.idp.attribute.impl.JDBCPairwiseIdStore;
@@ -93,9 +94,10 @@ public class StoredIdDataConnectorParser extends ComputedIdDataConnectorParser {
StringSupport.trimOrNull(config.getAttributeNS(null, "failFastInitialize")));
}
- if (config.hasAttributeNS(null, "retryableErrors")) {
+ final Attr retryableErrorsAttr = config.getAttributeNodeNS(null, "retryableErrors");
+ if (retryableErrorsAttr!=null) {
builder.addPropertyValue("retryableErrors",
- SpringSupport.getAttributeValueAsList(config.getAttributeNodeNS(null, "retryableErrors")));
+ SpringSupport.getAttributeValueAsList(retryableErrorsAttr));
}
if (config.hasAttributeNS(null, "salt") || config.hasAttributeNS(null, "encodedSalt") ||
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list