[java-shib-attribute] branch main updated: Fix null and annotation bugs.
Scott Cantor
cantor.2 at osu.edu
Wed Nov 16 16:09:06 UTC 2022
This is an automated email from the git hooks/post-receive script.
scantor 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=53b3f6d4c5588c74bf0d7c515cb0319158ff6099
The following commit(s) were added to refs/heads/main by this push:
new 53b3f6d4c Fix null and annotation bugs.
53b3f6d4c is described below
commit 53b3f6d4c5588c74bf0d7c515cb0319158ff6099
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Wed Nov 16 11:09:03 2022 -0500
Fix null and annotation bugs.
---
.../resolver/spring/BaseResolverPluginParser.java | 5 ++-
.../ContextDerivedAttributeDefinitionParser.java | 5 ++-
.../ad/impl/DateTimeAttributeDefinitionParser.java | 3 +-
.../impl/DecryptedAttributeDefinitionParser.java | 7 ++--
.../impl/PrescopedAttributeDefinitionParser.java | 3 +-
.../PrincipalNameAttributeDefinitionParser.java | 3 +-
.../impl/RegexSplitAttributeDefinitionParser.java | 5 ++-
...ML1NameIdentifierAttributeDefinitionParser.java | 4 +-
.../impl/SAML2NameIDAttributeDefinitionParser.java | 3 +-
.../ad/impl/ScopedAttributeDefinitionParser.java | 3 +-
.../ad/impl/ScriptedAttributeDefinitionParser.java | 3 +-
.../ad/impl/SimpleAttributeDefinitionParser.java | 3 +-
.../SubjectDerivedAttributeDefinitionParser.java | 11 ++++--
.../ad/impl/TemplateAttributeDefinitionParser.java | 4 +-
.../impl/MappedAttributeDefinitionParser.java | 5 ++-
.../spring/ad/mapped/impl/SourceValueParser.java | 3 +-
.../spring/ad/mapped/impl/ValueMapParser.java | 5 ++-
.../dc/http/impl/HTTPDataConnectorParser.java | 9 +++--
.../resolver/spring/dc/impl/CacheConfigParser.java | 3 +-
.../dc/impl/ComputedIdDataConnectorParser.java | 4 +-
.../dc/impl/ContextDerivedDataConnectorParser.java | 3 +-
.../dc/impl/PairwiseIdDataConnectorParser.java | 3 +-
.../dc/impl/ScriptedDataConnectorParser.java | 4 +-
.../spring/dc/impl/StaticDataConnectorParser.java | 4 +-
.../spring/dc/impl/SubjectDataConnectorParser.java | 6 ++-
.../dc/ldap/impl/CredentialConfigFactoryBean.java | 11 ++++--
.../dc/ldap/impl/LDAPDataConnectorParser.java | 31 +++++++--------
.../dc/rdbms/impl/RDBMSDataConnectorParser.java | 11 +++---
.../impl/StorageServiceDataConnectorParser.java | 10 +++--
.../spring/enc/BaseAttributeEncoderParser.java | 8 ++--
.../impl/SAML1Base64AttributeEncoderParser.java | 2 +-
.../SAML1ScopedStringAttributeEncoderParser.java | 2 +-
.../impl/SAML1StringAttributeEncoderParser.java | 2 +-
.../impl/SAML1XMLObjectAttributeEncoderParser.java | 2 +-
.../impl/SAML2Base64AttributeEncoderParser.java | 2 +-
.../impl/SAML2DateTimeAttributeEncoderParser.java | 2 +-
.../SAML2ScopedStringAttributeEncoderParser.java | 2 +-
.../impl/SAML2StringAttributeEncoderParser.java | 2 +-
.../impl/SAML2XMLObjectAttributeEncoderParser.java | 2 +-
.../impl/AbstractResolverPluginFactoryBean.java | 33 ++++++++++------
.../spring/impl/AttributeResolverParser.java | 6 ++-
.../impl/AttributeResolverServiceStrategy.java | 4 ++
.../spring/impl/InputDataConnectorParser.java | 3 +-
.../resolver/spring/AttributeMapperTest.java | 14 ++++---
.../spring/AttributeMappingNodeProcessorTest.java | 37 ++++++++++--------
.../resolver/spring/AttributeResolverTest.java | 44 +++++++++++++---------
.../idp/attribute/resolver/spring/IdP1676Test.java | 32 +++++++++-------
.../DateTimeAttributeDefinitionParserTest.java | 2 +-
.../impl/ScopedAttributeDefinitionParserTest.java | 8 ++--
.../spring/ad/impl/SimpleAttributeParserTest.java | 6 +++
.../impl/MappedAttributeDefinitionParserTest.java | 13 +++++--
.../spring/ad/mapped/impl/ValueMapParserTest.java | 7 +++-
.../dc/http/impl/HTTPDataConnectorParserTest.java | 19 +++++++---
.../spring/dc/impl/CacheConfigParserTest.java | 26 +++++++++----
.../dc/impl/ScriptedDataConnectorParserTest.java | 4 +-
.../dc/impl/StoredIdDataConnectorParserTest.java | 2 +
.../dc/ldap/impl/LDAPDataConnectorParserTest.java | 33 +++++++++-------
.../StorageServiceDataConnectorParserTest.java | 18 +++++++--
.../failfast/AttributeResolverFailFastTest.java | 16 ++++++--
59 files changed, 341 insertions(+), 186 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 ed83d4b53..2d40236dc 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
@@ -38,6 +38,7 @@ import net.shibboleth.shared.logic.PredicateSupport;
import net.shibboleth.shared.primitive.StringSupport;
import net.shibboleth.shared.spring.custom.AbstractCustomBeanDefinitionParser;
import net.shibboleth.shared.spring.util.SpringSupport;
+import net.shibboleth.shared.xml.AttributeSupport;
import net.shibboleth.shared.xml.ElementSupport;
/** Bean definition parser for a {@link net.shibboleth.idp.attribute.resolver.ResolverPlugin}. */
@@ -100,7 +101,7 @@ public abstract class BaseResolverPluginParser extends AbstractCustomBeanDefinit
log.warn("relyingParties/resolutionPhases and variants ignored, using activationConditionRef");
}
builder.addPropertyReference("activationCondition",
- StringSupport.trimOrNull(config.getAttributeNS(null, "activationConditionRef")));
+ AttributeSupport.getRequiredAttributeValue(config, null, "activationConditionRef"));
} else {
final BeanDefinitionBuilder condition = getActivationCondition(config);
if (condition != null) {
@@ -153,6 +154,7 @@ public abstract class BaseResolverPluginParser extends AbstractCustomBeanDefinit
if (config.hasAttributeNS(null, "excludeRelyingParties")) {
log.warn("excludeRelyingParties ignored, using relyingParties");
}
+ assert relyingPartyPredicateClass != null;
rpBuilder = BeanDefinitionBuilder.genericBeanDefinition(relyingPartyPredicateClass);
rpBuilder.setFactoryMethod(RELYING_PARTIES_PREDICATE_METHOD);
rpBuilder.addConstructorArgValue(
@@ -162,6 +164,7 @@ public abstract class BaseResolverPluginParser extends AbstractCustomBeanDefinit
log.warn("Ignoring excludeRelyingParties setting due to class instantiation failure at startup");
return null;
}
+ assert relyingPartyPredicateClass != null;
final BeanDefinitionBuilder unnegated =
BeanDefinitionBuilder.genericBeanDefinition(relyingPartyPredicateClass);
unnegated.setFactoryMethod(RELYING_PARTIES_PREDICATE_METHOD);
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/ContextDerivedAttributeDefinitionParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/ContextDerivedAttributeDefinitionParser.java
index 27315f4bb..4aec39c92 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/ContextDerivedAttributeDefinitionParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/ContextDerivedAttributeDefinitionParser.java
@@ -18,6 +18,7 @@
package net.shibboleth.idp.attribute.resolver.spring.ad.impl;
import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
import javax.xml.namespace.QName;
import org.springframework.beans.factory.BeanCreationException;
@@ -38,7 +39,8 @@ public class ContextDerivedAttributeDefinitionParser extends BaseAttributeDefini
new QName(AttributeResolverNamespaceHandler.NAMESPACE, "ContextDerivedAttribute");
/** {@inheritDoc} */
- @Override protected Class<ContextDerivedAttributeDefinition> getBeanClass(final Element element) {
+ @Override
+ @Nullable protected Class<ContextDerivedAttributeDefinition> getBeanClass(@Nonnull final Element element) {
return ContextDerivedAttributeDefinition.class;
}
@@ -58,4 +60,5 @@ public class ContextDerivedAttributeDefinitionParser extends BaseAttributeDefini
@Override protected boolean failOnDependencies() {
return true;
}
+
}
\ No newline at end of file
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/DateTimeAttributeDefinitionParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/DateTimeAttributeDefinitionParser.java
index 9a52c420a..1b4f31b02 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/DateTimeAttributeDefinitionParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/DateTimeAttributeDefinitionParser.java
@@ -40,7 +40,8 @@ public class DateTimeAttributeDefinitionParser extends BaseAttributeDefinitionPa
new QName(AttributeResolverNamespaceHandler.NAMESPACE, "DateTime");
/** {@inheritDoc} */
- @Override protected Class<DateTimeAttributeDefinition> getBeanClass(@Nullable final Element element) {
+ @Override
+ @Nullable protected Class<DateTimeAttributeDefinition> getBeanClass(@Nullable final Element element) {
return DateTimeAttributeDefinition.class;
}
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/DecryptedAttributeDefinitionParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/DecryptedAttributeDefinitionParser.java
index d03a0f66e..cfdd49827 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/DecryptedAttributeDefinitionParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/DecryptedAttributeDefinitionParser.java
@@ -28,7 +28,7 @@ import org.w3c.dom.Element;
import net.shibboleth.idp.attribute.resolver.ad.impl.DecryptedAttributeDefinition;
import net.shibboleth.idp.attribute.resolver.spring.ad.BaseAttributeDefinitionParser;
import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
-import net.shibboleth.shared.primitive.StringSupport;
+import net.shibboleth.shared.xml.AttributeSupport;
/** Bean definition parser for a {@link DecryptedAttributeDefinition}. */
public class DecryptedAttributeDefinitionParser extends BaseAttributeDefinitionParser {
@@ -38,7 +38,8 @@ public class DecryptedAttributeDefinitionParser extends BaseAttributeDefinitionP
new QName(AttributeResolverNamespaceHandler.NAMESPACE, "Decrypted");
/** {@inheritDoc} */
- @Override protected Class<DecryptedAttributeDefinition> getBeanClass(@Nullable final Element element) {
+ @Override
+ @Nullable protected Class<DecryptedAttributeDefinition> getBeanClass(@Nullable final Element element) {
return DecryptedAttributeDefinition.class;
}
@@ -48,7 +49,7 @@ public class DecryptedAttributeDefinitionParser extends BaseAttributeDefinitionP
super.doParse(config, parserContext, builder);
builder.addPropertyReference("dataSealer",
- StringSupport.trimOrNull(config.getAttributeNS(null, "dataSealerRef")));
+ AttributeSupport.getRequiredAttributeValue(config, null, "dataSealerRef"));
}
}
\ No newline at end of file
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/PrescopedAttributeDefinitionParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/PrescopedAttributeDefinitionParser.java
index 81c0134dc..79dbd9a41 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/PrescopedAttributeDefinitionParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/PrescopedAttributeDefinitionParser.java
@@ -43,7 +43,8 @@ public class PrescopedAttributeDefinitionParser extends BaseAttributeDefinitionP
@Nonnull private final Logger log = LoggerFactory.getLogger(PrescopedAttributeDefinitionParser.class);
/** {@inheritDoc} */
- @Override protected Class<PrescopedAttributeDefinition> getBeanClass(@Nullable final Element element) {
+ @Override
+ @Nullable protected Class<PrescopedAttributeDefinition> getBeanClass(@Nullable final Element element) {
return PrescopedAttributeDefinition.class;
}
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/PrincipalNameAttributeDefinitionParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/PrincipalNameAttributeDefinitionParser.java
index cf25066de..612525084 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/PrincipalNameAttributeDefinitionParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/PrincipalNameAttributeDefinitionParser.java
@@ -35,7 +35,8 @@ public class PrincipalNameAttributeDefinitionParser extends BaseAttributeDefinit
new QName(AttributeResolverNamespaceHandler.NAMESPACE, "PrincipalName");
/** {@inheritDoc} */
- @Override protected Class<PrincipalNameAttributeDefinition> getBeanClass(@Nullable final Element element) {
+ @Override
+ @Nullable protected Class<PrincipalNameAttributeDefinition> getBeanClass(@Nullable final Element element) {
return PrincipalNameAttributeDefinition.class;
}
}
\ No newline at end of file
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/RegexSplitAttributeDefinitionParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/RegexSplitAttributeDefinitionParser.java
index b27247999..dd22d34cc 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/RegexSplitAttributeDefinitionParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/RegexSplitAttributeDefinitionParser.java
@@ -45,7 +45,8 @@ public class RegexSplitAttributeDefinitionParser extends BaseAttributeDefinition
@Nonnull private final Logger log = LoggerFactory.getLogger(RegexSplitAttributeDefinitionParser.class);
/** {@inheritDoc} */
- @Override protected Class<RegexSplitAttributeDefinition> getBeanClass(@Nullable final Element element) {
+ @Override
+ @Nullable protected Class<RegexSplitAttributeDefinition> getBeanClass(@Nullable final Element element) {
return RegexSplitAttributeDefinition.class;
}
@@ -66,10 +67,12 @@ public class RegexSplitAttributeDefinitionParser extends BaseAttributeDefinition
pattern.addPropertyValue("regexp", regexp);
if (config.hasAttributeNS(null, "caseSensitive")) {
+ // TODO: Shouldn't this be retrieving the attribute as a Boolean?
pattern.addPropertyValue("caseSensitive",
StringSupport.trimOrNull(config.getAttributeNS(null, "caseSensitive")));
}
builder.addPropertyValue("regularExpression", pattern.getBeanDefinition());
}
+
}
\ No newline at end of file
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SAML1NameIdentifierAttributeDefinitionParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SAML1NameIdentifierAttributeDefinitionParser.java
index 4b7514591..f4c51bdb1 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SAML1NameIdentifierAttributeDefinitionParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SAML1NameIdentifierAttributeDefinitionParser.java
@@ -46,7 +46,8 @@ public class SAML1NameIdentifierAttributeDefinitionParser extends BaseAttributeD
@Nonnull private final Logger log = LoggerFactory.getLogger(SAML1NameIdentifierAttributeDefinitionParser.class);
/** {@inheritDoc} */
- @Override protected Class<SAML1NameIdentifierAttributeDefinition> getBeanClass(@Nullable final Element element) {
+ @Override
+ @Nullable protected Class<SAML1NameIdentifierAttributeDefinition> getBeanClass(@Nullable final Element element) {
return SAML1NameIdentifierAttributeDefinition.class;
}
@@ -69,4 +70,5 @@ public class SAML1NameIdentifierAttributeDefinitionParser extends BaseAttributeD
log.debug("{} nameIdQualifier '{}'", getLogPrefix(), nameIdQualifier);
}
}
+
}
\ No newline at end of file
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SAML2NameIDAttributeDefinitionParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SAML2NameIDAttributeDefinitionParser.java
index bfc82098d..4cb52d9ab 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SAML2NameIDAttributeDefinitionParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SAML2NameIDAttributeDefinitionParser.java
@@ -46,7 +46,8 @@ public class SAML2NameIDAttributeDefinitionParser extends BaseAttributeDefinitio
@Nonnull private final Logger log = LoggerFactory.getLogger(SAML1NameIdentifierAttributeDefinitionParser.class);
/** {@inheritDoc} */
- @Override protected Class<SAML2NameIDAttributeDefinition> getBeanClass(@Nullable final Element element) {
+ @Override
+ @Nullable protected Class<SAML2NameIDAttributeDefinition> getBeanClass(@Nullable final Element element) {
return SAML2NameIDAttributeDefinition.class;
}
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/ScopedAttributeDefinitionParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/ScopedAttributeDefinitionParser.java
index 5b31f9ace..e5db72f0b 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/ScopedAttributeDefinitionParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/ScopedAttributeDefinitionParser.java
@@ -45,7 +45,8 @@ public class ScopedAttributeDefinitionParser extends BaseAttributeDefinitionPars
@Nonnull private final Logger log = LoggerFactory.getLogger(ScopedAttributeDefinitionParser.class);
/** {@inheritDoc} */
- @Override protected Class<ScopedAttributeDefinition> getBeanClass(@Nullable final Element element) {
+ @Override
+ @Nullable protected Class<ScopedAttributeDefinition> getBeanClass(@Nullable final Element element) {
return ScopedAttributeDefinition.class;
}
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/ScriptedAttributeDefinitionParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/ScriptedAttributeDefinitionParser.java
index 5f94f93a9..71906134b 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/ScriptedAttributeDefinitionParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/ScriptedAttributeDefinitionParser.java
@@ -58,7 +58,8 @@ public class ScriptedAttributeDefinitionParser extends BaseAttributeDefinitionPa
@Nonnull private final Logger log = LoggerFactory.getLogger(ScriptedAttributeDefinitionParser.class);
/** {@inheritDoc} */
- @Override protected Class<ScriptedAttributeDefinition> getBeanClass(@Nullable final Element element) {
+ @Override
+ @Nullable protected Class<ScriptedAttributeDefinition> getBeanClass(@Nullable final Element element) {
return ScriptedAttributeDefinition.class;
}
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SimpleAttributeDefinitionParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SimpleAttributeDefinitionParser.java
index b3f0b9b07..7ac57bdd6 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SimpleAttributeDefinitionParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SimpleAttributeDefinitionParser.java
@@ -38,7 +38,8 @@ public class SimpleAttributeDefinitionParser extends BaseAttributeDefinitionPars
new QName(AttributeResolverNamespaceHandler.NAMESPACE, "Simple");
/** {@inheritDoc} */
- @Override protected Class<SimpleAttributeDefinition> getBeanClass(@Nullable final Element element) {
+ @Override
+ @Nullable protected Class<SimpleAttributeDefinition> getBeanClass(@Nullable final Element element) {
return SimpleAttributeDefinition.class;
}
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SubjectDerivedAttributeDefinitionParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SubjectDerivedAttributeDefinitionParser.java
index 263b83166..d8b2de445 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SubjectDerivedAttributeDefinitionParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SubjectDerivedAttributeDefinitionParser.java
@@ -20,6 +20,7 @@ package net.shibboleth.idp.attribute.resolver.spring.ad.impl;
import java.util.function.Function;
import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
import javax.xml.namespace.QName;
import org.slf4j.Logger;
@@ -52,10 +53,10 @@ public class SubjectDerivedAttributeDefinitionParser extends BaseAttributeDefini
"net.shibboleth.idp.authn.context.impl.IdPAttributePrincipalValuesFunction";
/** Class for sourcing values from Subject(s). */
- @Nonnull private Class<? extends Function<?,?>> subjectDerivedClass;
+ @Nullable private Class<? extends Function<?,?>> subjectDerivedClass;
/** Class for sourcing values from Principal(s). */
- @Nonnull private Class<? extends Function<?,?>> principalDerivedClass;
+ @Nullable private Class<? extends Function<?,?>> principalDerivedClass;
/** Class logger. */
private final Logger log = LoggerFactory.getLogger(SubjectDerivedAttributeDefinitionParser.class);
@@ -72,7 +73,8 @@ public class SubjectDerivedAttributeDefinitionParser extends BaseAttributeDefini
}
/** {@inheritDoc} */
- @Override protected Class<ContextDerivedAttributeDefinition> getBeanClass(final Element element) {
+ @Override
+ @Nullable protected Class<ContextDerivedAttributeDefinition> getBeanClass(@Nonnull final Element element) {
return ContextDerivedAttributeDefinition.class;
}
@@ -98,6 +100,7 @@ public class SubjectDerivedAttributeDefinitionParser extends BaseAttributeDefini
final String attributeName = StringSupport.trimOrNull(config.getAttributeNS(null, "principalAttributeName"));
final String functionRef = StringSupport.trimOrNull(config.getAttributeNS(null, "attributeValuesFunctionRef"));
+ assert subjectDerivedClass != null;
final BeanDefinitionBuilder contextFunctionBuilder =
BeanDefinitionBuilder.genericBeanDefinition(subjectDerivedClass);
contextFunctionBuilder.setInitMethodName("initialize");
@@ -119,6 +122,7 @@ public class SubjectDerivedAttributeDefinitionParser extends BaseAttributeDefini
throw new BeanCreationException("Unable to load class for principal-derived attribute function.");
}
+ assert principalDerivedClass != null;
final BeanDefinitionBuilder principalValuesFunctionBuilder =
BeanDefinitionBuilder.genericBeanDefinition(principalDerivedClass);
principalValuesFunctionBuilder.addPropertyValue("attributeName", attributeName);
@@ -138,4 +142,5 @@ public class SubjectDerivedAttributeDefinitionParser extends BaseAttributeDefini
@Override protected boolean failOnDependencies() {
return true;
}
+
}
\ No newline at end of file
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/TemplateAttributeDefinitionParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/TemplateAttributeDefinitionParser.java
index badada57f..44dc7d82b 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/TemplateAttributeDefinitionParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/TemplateAttributeDefinitionParser.java
@@ -52,7 +52,8 @@ public class TemplateAttributeDefinitionParser extends BaseAttributeDefinitionPa
@Nonnull private final Logger log = LoggerFactory.getLogger(TemplateAttributeDefinitionParser.class);
/** {@inheritDoc} */
- @Override protected Class<TemplateAttributeDefinition> getBeanClass(@Nullable final Element element) {
+ @Override
+ @Nullable protected Class<TemplateAttributeDefinition> getBeanClass(@Nullable final Element element) {
return TemplateAttributeDefinition.class;
}
@@ -82,4 +83,5 @@ public class TemplateAttributeDefinitionParser extends BaseAttributeDefinitionPa
log.debug("{} Velocity engine reference '{}'.", getLogPrefix(), velocityEngineRef);
builder.addPropertyReference("velocityEngine", velocityEngineRef);
}
+
}
\ No newline at end of file
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/MappedAttributeDefinitionParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/MappedAttributeDefinitionParser.java
index 6ece4fb27..3711a6fb6 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/MappedAttributeDefinitionParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/MappedAttributeDefinitionParser.java
@@ -54,7 +54,8 @@ public class MappedAttributeDefinitionParser extends BaseAttributeDefinitionPars
@Nonnull private Logger log = LoggerFactory.getLogger(MappedAttributeDefinitionParser.class);
/** {@inheritDoc} */
- @Override protected Class<MappedAttributeDefinition> getBeanClass(@Nullable final Element element) {
+ @Override
+ @Nullable protected Class<MappedAttributeDefinition> getBeanClass(@Nullable final Element element) {
return MappedAttributeDefinition.class;
}
@@ -95,7 +96,7 @@ public class MappedAttributeDefinitionParser extends BaseAttributeDefinitionPars
SpringSupport.parseCustomElements(valueMapElements, parserContext, builder);
log.debug("{} passThru = {}, defaultValue = {}, {} value maps",
- new Object[] {getLogPrefix(), passThru, defaultValue, valueMaps.size(),});
+ new Object[] {getLogPrefix(), passThru, defaultValue, valueMaps != null ? valueMaps.size() : 0,});
log.trace("{} Value maps {}", getLogPrefix(), valueMaps);
builder.addPropertyValue("defaultValue", defaultValue);
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/SourceValueParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/SourceValueParser.java
index cac7ca373..2b56a512f 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/SourceValueParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/SourceValueParser.java
@@ -46,7 +46,8 @@ public class SourceValueParser extends AbstractCustomBeanDefinitionParser {
@Nonnull private Logger log = LoggerFactory.getLogger(SourceValueParser.class);
/** {@inheritDoc} */
- @Override protected Class<SourceValue> getBeanClass(@Nullable final Element element) {
+ @Override
+ @Nullable protected Class<SourceValue> getBeanClass(@Nullable final Element element) {
return SourceValue.class;
}
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/ValueMapParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/ValueMapParser.java
index d9e1e453d..311a973f0 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/ValueMapParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/ValueMapParser.java
@@ -54,7 +54,8 @@ public class ValueMapParser extends AbstractCustomBeanDefinitionParser {
@Nonnull private Logger log = LoggerFactory.getLogger(ValueMapParser.class);
/** {@inheritDoc} */
- @Override protected Class<ValueMap> getBeanClass(@Nullable final Element element) {
+ @Override
+ @Nullable protected Class<ValueMap> getBeanClass(@Nullable final Element element) {
return ValueMap.class;
}
@@ -84,7 +85,7 @@ public class ValueMapParser extends AbstractCustomBeanDefinitionParser {
SpringSupport.parseCustomElements(sourceValueElements, parserContext, builder);
log.debug("AttributeDefinition(ValueMap): return value: {}, {} source values ", returnValue,
- sourceValues.size());
+ sourceValues != null ? sourceValues.size() : 0);
log.trace("AttributeDefinition(ValueMap): source values: {}", sourceValues);
builder.addPropertyValue("sourceValues", sourceValues);
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 7be66dd75..c0c9193f3 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
@@ -60,7 +60,8 @@ public class HTTPDataConnectorParser extends AbstractDataConnectorParser {
@Nonnull private final Logger log = LoggerFactory.getLogger(HTTPDataConnectorParser.class);
/** {@inheritDoc} */
- @Override protected Class<HTTPDataConnector> getBeanClass(final Element element) {
+ @Override
+ @Nullable protected Class<HTTPDataConnector> getBeanClass(@Nonnull final Element element) {
return HTTPDataConnector.class;
}
@@ -308,14 +309,14 @@ public class HTTPDataConnectorParser extends AbstractDataConnectorParser {
final Element bodyTemplate = bodyTemplates.get(0);
if (urlTemplate.hasAttributeNS(null, "customObjectRef")) {
templateBuilder.addPropertyReference("customObject",
- urlTemplate.getAttributeNS(null, "customObjectRef"));
+ AttributeSupport.getRequiredAttributeValue(urlTemplate, null, "customObjectRef"));
if (bodyTemplate.hasAttributeNS(null, "customObjectRef")) {
log.warn("{} Ignored <BodyTemplate> customObjectRef in favor of <URLTemplate> customObjectRef",
getLogPrefix());
}
} else if (bodyTemplate.hasAttributeNS(null, "customObjectRef")) {
templateBuilder.addPropertyReference("customObject",
- bodyTemplate.getAttributeNS(null, "customObjectRef"));
+ AttributeSupport.getRequiredAttributeValue(bodyTemplate, null, "customObjectRef"));
}
templateBuilder.addPropertyValue("uRLTemplateText", urlTemplate.getTextContent());
@@ -410,7 +411,7 @@ public class HTTPDataConnectorParser extends AbstractDataConnectorParser {
*/
@Nullable public BeanDefinition createCache(@Nonnull final ParserContext parserContext) {
final CacheConfigParser parser = new CacheConfigParser(configElement);
- return parser.createCache(parserContext);
+ return parser.createCache();
}
/**
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 69a6e92d1..16359d7df 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
@@ -38,7 +38,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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.Element;
import com.google.common.cache.Cache;
@@ -88,7 +87,7 @@ public class CacheConfigParser {
*
* @return cache bean definition
*/
- @Nonnull public BeanDefinition createCache(@Nonnull final ParserContext parserContext) {
+ @Nullable public BeanDefinition createCache() {
final List<Element> cacheElements = ElementSupport.getChildElements(configElement, RESULT_CACHE_RESOLVER);
if (cacheElements.isEmpty()) {
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ComputedIdDataConnectorParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ComputedIdDataConnectorParser.java
index bfbdeacf5..52b617b50 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ComputedIdDataConnectorParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ComputedIdDataConnectorParser.java
@@ -22,6 +22,7 @@ import javax.xml.namespace.QName;
import net.shibboleth.idp.attribute.impl.ComputedPairwiseIdStore;
import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
+import net.shibboleth.shared.xml.AttributeSupport;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -74,7 +75,8 @@ public class ComputedIdDataConnectorParser extends PairwiseIdDataConnectorParser
}
if (config.hasAttributeNS(null, "exceptionMapRef")) {
- builder.addPropertyReference("exceptionMap", config.getAttributeNS(null, "exceptionMapRef"));
+ builder.addPropertyReference("exceptionMap",
+ AttributeSupport.getRequiredAttributeValue(config, null, "exceptionMapRef"));
}
final String salt;
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ContextDerivedDataConnectorParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ContextDerivedDataConnectorParser.java
index 5be41f732..c6875dbe7 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ContextDerivedDataConnectorParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ContextDerivedDataConnectorParser.java
@@ -18,6 +18,7 @@
package net.shibboleth.idp.attribute.resolver.spring.dc.impl;
import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
import javax.xml.namespace.QName;
import org.springframework.beans.factory.BeanCreationException;
@@ -42,7 +43,7 @@ public class ContextDerivedDataConnectorParser extends AbstractDataConnectorPars
/** {@inheritDoc} */
@Override
- @Nonnull protected Class<? extends AbstractDataConnector> getBeanClass(final Element element) {
+ @Nullable protected Class<? extends AbstractDataConnector> getBeanClass(@Nonnull final Element element) {
return ContextDerivedDataConnector.class;
}
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/PairwiseIdDataConnectorParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/PairwiseIdDataConnectorParser.java
index 9262ddbd9..48b6e996d 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/PairwiseIdDataConnectorParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/PairwiseIdDataConnectorParser.java
@@ -50,7 +50,8 @@ public class PairwiseIdDataConnectorParser extends AbstractDataConnectorParser {
@Nonnull private final Logger log = LoggerFactory.getLogger(PairwiseIdDataConnectorParser.class);
/** {@inheritDoc} */
- @Override protected Class<PairwiseIdDataConnector> getBeanClass(final Element element) {
+ @Override
+ @Nullable protected Class<PairwiseIdDataConnector> getBeanClass(@Nonnull final Element element) {
return PairwiseIdDataConnector.class;
}
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ScriptedDataConnectorParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ScriptedDataConnectorParser.java
index c17a2a73d..e4030b7f2 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ScriptedDataConnectorParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ScriptedDataConnectorParser.java
@@ -20,6 +20,7 @@ package net.shibboleth.idp.attribute.resolver.spring.dc.impl;
import java.util.List;
import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
import javax.xml.namespace.QName;
import org.slf4j.Logger;
@@ -55,7 +56,8 @@ public class ScriptedDataConnectorParser extends AbstractDataConnectorParser {
@Nonnull private final Logger log = LoggerFactory.getLogger(ScriptedDataConnectorParser.class);
/** {@inheritDoc} */
- @Override protected Class<ScriptedDataConnector> getBeanClass(final Element element) {
+ @Override
+ @Nullable protected Class<ScriptedDataConnector> getBeanClass(@Nonnull final Element element) {
return ScriptedDataConnector.class;
}
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StaticDataConnectorParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StaticDataConnectorParser.java
index 88290be34..7cc5496f9 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StaticDataConnectorParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StaticDataConnectorParser.java
@@ -20,6 +20,7 @@ package net.shibboleth.idp.attribute.resolver.spring.dc.impl;
import java.util.List;
import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
import javax.xml.namespace.QName;
import org.slf4j.Logger;
@@ -53,7 +54,8 @@ public class StaticDataConnectorParser extends AbstractDataConnectorParser {
@Nonnull private final Logger log = LoggerFactory.getLogger(StaticDataConnectorParser.class);
/** {@inheritDoc} */
- @Override protected final Class<StaticDataConnector> getBeanClass(final Element element) {
+ @Override
+ @Nullable protected final Class<StaticDataConnector> getBeanClass(@Nonnull final Element element) {
return StaticDataConnector.class;
}
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/SubjectDataConnectorParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/SubjectDataConnectorParser.java
index 834382d4e..7f5b9d1eb 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/SubjectDataConnectorParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/SubjectDataConnectorParser.java
@@ -20,6 +20,7 @@ package net.shibboleth.idp.attribute.resolver.spring.dc.impl;
import java.util.function.Function;
import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
import javax.xml.namespace.QName;
import org.slf4j.Logger;
@@ -53,11 +54,11 @@ public class SubjectDataConnectorParser extends AbstractDataConnectorParser {
@Nonnull private final Logger log = LoggerFactory.getLogger(SubjectDataConnectorParser.class);
/** Class for sourcing values from Subject(s). */
- @Nonnull private Class<? extends Function<?,?>> subjectDerivedClass;
+ @Nullable private Class<? extends Function<?,?>> subjectDerivedClass;
/** {@inheritDoc} */
@Override
- @Nonnull protected Class<? extends AbstractDataConnector> getBeanClass(final Element element) {
+ @Nullable protected Class<? extends AbstractDataConnector> getBeanClass(@Nonnull final Element element) {
return ContextDerivedDataConnector.class;
}
@@ -82,6 +83,7 @@ public class SubjectDataConnectorParser extends AbstractDataConnectorParser {
// Auto-inject an instance of the deferred class type as the lookup function.
+ assert subjectDerivedClass != null;
final BeanDefinitionBuilder contextFunctionBuilder =
BeanDefinitionBuilder.genericBeanDefinition(subjectDerivedClass);
contextFunctionBuilder.setInitMethodName("initialize");
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/CredentialConfigFactoryBean.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/CredentialConfigFactoryBean.java
index 884e33dd9..e35354ed5 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/CredentialConfigFactoryBean.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/CredentialConfigFactoryBean.java
@@ -48,12 +48,14 @@ public class CredentialConfigFactoryBean extends AbstractComponentAwareFactoryBe
@Nullable private Credential authCredential;
/** {@inheritDoc} */
- @Override public Class<?> getObjectType() {
+ @Override
+ @Nonnull public Class<?> getObjectType() {
return CredentialConfig.class;
}
/** {@inheritDoc} */
- @Override protected CredentialConfig doCreateInstance() throws Exception {
+ @Override
+ @Nonnull protected CredentialConfig doCreateInstance() throws Exception {
X509Certificate[] trustCerts = null;
if (trustCredential != null) {
@@ -63,6 +65,7 @@ public class CredentialConfigFactoryBean extends AbstractComponentAwareFactoryBe
cred.getEntityCertificateChain().toArray(
new X509Certificate[cred.getEntityCertificateChain().size()]);
} else {
+ assert trustCredential != null;
log.error("Supplied StartTLSTrustCredential was of type {}, not {}", trustCredential.getClass()
.getName(), X509Credential.class.getName());
throw new BeanCreationException("Supplied StartTLSTrustCredential was of wrong type");
@@ -77,6 +80,7 @@ public class CredentialConfigFactoryBean extends AbstractComponentAwareFactoryBe
authCert = cred.getEntityCertificate();
authKey = cred.getPrivateKey();
} else {
+ assert authCredential != null;
log.error("Supplied StartTLSAuthenticationCredential was of type {}, not {}",
authCredential.getClass().getName(), X509Credential.class.getName());
throw new BeanCreationException("Supplied StartTLSAuthenticationCredential was of wrong type");
@@ -120,4 +124,5 @@ public class CredentialConfigFactoryBean extends AbstractComponentAwareFactoryBe
public void setTrustCredential(@Nullable final Credential credential) {
trustCredential = credential;
}
-}
+
+}
\ No newline at end of file
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java
index 9fc0c8956..facd9b633 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java
@@ -67,6 +67,7 @@ import net.shibboleth.idp.attribute.resolver.dc.ldap.impl.LDAPDataConnector;
import net.shibboleth.idp.attribute.resolver.spring.dc.AbstractDataConnectorParser;
import net.shibboleth.idp.attribute.resolver.spring.dc.impl.CacheConfigParser;
import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
+import net.shibboleth.shared.annotation.constraint.NotEmpty;
import net.shibboleth.shared.logic.Constraint;
import net.shibboleth.shared.primitive.DeprecationSupport;
import net.shibboleth.shared.primitive.StringSupport;
@@ -90,7 +91,8 @@ public class LDAPDataConnectorParser extends AbstractDataConnectorParser {
@Nonnull private final Logger log = LoggerFactory.getLogger(LDAPDataConnectorParser.class);
/** {@inheritDoc} */
- @Override protected Class<LDAPDataConnector> getBeanClass(final Element element) {
+ @Override
+ @Nullable protected Class<LDAPDataConnector> getBeanClass(@Nonnull final Element element) {
return LDAPDataConnector.class;
}
@@ -205,7 +207,7 @@ public class LDAPDataConnectorParser extends AbstractDataConnectorParser {
}
else if (pooledConnectionFactory != null) {
builder.addPropertyValue("validator", v2Parser.createValidator(pooledConnectionFactory));
- } else {
+ } else if (connectionFactory != null) {
builder.addPropertyValue("validator", v2Parser.createValidator(connectionFactory.getBeanDefinition()));
}
}
@@ -230,13 +232,13 @@ public class LDAPDataConnectorParser extends AbstractDataConnectorParser {
protected static class V2Parser {
/** Class logger. */
- private static final Logger LOG = LoggerFactory.getLogger(V2Parser.class);
+ @Nonnull private static final Logger LOG = LoggerFactory.getLogger(V2Parser.class);
/** LDAPDirectory XML element. */
- private final Element configElement;
+ @Nonnull private final Element configElement;
/** LogPrefix of parent. */
- private final String logPrefix;
+ @Nonnull @NotEmpty private final String logPrefix;
/**
* Creates a new V2Parser with the supplied LDAPDirectory element.
@@ -245,9 +247,8 @@ public class LDAPDataConnectorParser extends AbstractDataConnectorParser {
* @param prefix the parent's log prefix
*/
public V2Parser(@Nonnull final Element config, @Nonnull final String prefix) {
- Constraint.isNotNull(config, "LDAPDirectory element cannot be null");
- configElement = config;
- logPrefix = prefix;
+ configElement = Constraint.isNotNull(config, "LDAPDirectory element cannot be null");
+ logPrefix = Constraint.isNotEmpty(prefix, "Log prefix cannot be null or empty");
}
/**
@@ -737,7 +738,7 @@ public class LDAPDataConnectorParser extends AbstractDataConnectorParser {
for (final Element property : saslProperties) {
final String name = AttributeSupport.getAttributeValue(property, null, "name");
final String value = AttributeSupport.getAttributeValue(property, null, "value");
- if ("javax.security.sasl.qop".equals(name)) {
+ if ("javax.security.sasl.qop".equals(name) && value != null) {
final String[] splitValues = value.split(",");
final String[] values = new String[splitValues.length];
for (int i = 0; i < splitValues.length; i++) {
@@ -752,7 +753,7 @@ public class LDAPDataConnectorParser extends AbstractDataConnectorParser {
}
}
saslConfig.addPropertyValue("qualityOfProtection", values);
- } else if ("javax.security.sasl.strength".equals(name)) {
+ } else if ("javax.security.sasl.strength".equals(name) && value != null) {
final String[] splitValues = value.split(",");
final String[] values = new String[splitValues.length];
for (int i = 0; i < splitValues.length; i++) {
@@ -814,7 +815,7 @@ public class LDAPDataConnectorParser extends AbstractDataConnectorParser {
*
* @return validator
*/
- @Nullable public BeanDefinition createValidator(final String connectionFactoryId) {
+ @Nullable public BeanDefinition createValidator(@Nonnull @NotEmpty final String connectionFactoryId) {
final BeanDefinitionBuilder validator =
BeanDefinitionBuilder.genericBeanDefinition(ConnectionFactoryValidator.class);
@@ -848,7 +849,7 @@ public class LDAPDataConnectorParser extends AbstractDataConnectorParser {
*/
@Nullable public BeanDefinition createCache(@Nonnull final ParserContext parserContext) {
final CacheConfigParser parser = new CacheConfigParser(configElement);
- return parser.createCache(parserContext);
+ return parser.createCache();
}
/** The parent's log prefix.
@@ -865,7 +866,7 @@ public class LDAPDataConnectorParser extends AbstractDataConnectorParser {
*
* @return list of strings
*/
- @Nonnull public static List<String> buildStringList(final String value) {
+ @Nonnull public static List<String> buildStringList(@Nonnull final String value) {
return StringSupport.stringToList(value, XMLConstants.LIST_DELIMITERS + ",");
}
@@ -950,7 +951,7 @@ public class LDAPDataConnectorParser extends AbstractDataConnectorParser {
*
* @return search result handlers or null
*/
- @Nonnull public static List<SearchResultHandler> buildReferralHandlers(
+ @Nullable public static List<SearchResultHandler> buildReferralHandlers(
@Nullable final String followReferrals) {
if (followReferrals != null && Boolean.valueOf(followReferrals)) {
return List.of(new FollowSearchReferralHandler());
@@ -975,7 +976,7 @@ public class LDAPDataConnectorParser extends AbstractDataConnectorParser {
* @param connectionStrategy the provided string (with properties stripped)
* @return the appropriate {@link ConnectionStrategy}.
*/
- @Nonnull public static ConnectionStrategy buildConnectionStrategy(@Nonnull final String connectionStrategy) {
+ @Nonnull public static ConnectionStrategy buildConnectionStrategy(@Nullable final String connectionStrategy) {
if (connectionStrategy == null) {
return new ActivePassiveConnectionStrategy();
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/impl/RDBMSDataConnectorParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/impl/RDBMSDataConnectorParser.java
index 7e9e7bd3f..f545a5714 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/impl/RDBMSDataConnectorParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/impl/RDBMSDataConnectorParser.java
@@ -59,7 +59,8 @@ public class RDBMSDataConnectorParser extends AbstractDataConnectorParser {
@Nonnull private final Logger log = LoggerFactory.getLogger(RDBMSDataConnectorParser.class);
/** {@inheritDoc} */
- @Override protected Class<RDBMSDataConnector> getBeanClass(final Element element) {
+ @Override
+ @Nullable protected Class<RDBMSDataConnector> getBeanClass(@Nonnull final Element element) {
return RDBMSDataConnector.class;
}
@@ -144,10 +145,10 @@ public class RDBMSDataConnectorParser extends AbstractDataConnectorParser {
protected static class V2Parser {
/** Base XML element. */
- private final Element configElement;
+ @Nonnull private final Element configElement;
/** Class logger. */
- private final Logger log = LoggerFactory.getLogger(V2Parser.class);
+ @Nonnull private final Logger log = LoggerFactory.getLogger(V2Parser.class);
/** Parent parser's log prefix.*/
@Nonnull @NotEmpty private final String logPrefix;
@@ -169,7 +170,7 @@ public class RDBMSDataConnectorParser extends AbstractDataConnectorParser {
*
* @return data source bean definition
*/
- @Nonnull public BeanDefinition createManagedDataSource() {
+ @Nullable public BeanDefinition createManagedDataSource() {
final ManagedConnectionParser parser = new ManagedConnectionParser(configElement);
return parser.createDataSource();
}
@@ -321,7 +322,7 @@ public class RDBMSDataConnectorParser extends AbstractDataConnectorParser {
*/
@Nullable public BeanDefinition createCache(@Nonnull final ParserContext parserContext) {
final CacheConfigParser parser = new CacheConfigParser(configElement);
- return parser.createCache(parserContext);
+ return parser.createCache();
}
/** The parent parser's log prefix.
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/storage/impl/StorageServiceDataConnectorParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/storage/impl/StorageServiceDataConnectorParser.java
index 592cf64eb..40f5b8285 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/storage/impl/StorageServiceDataConnectorParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/storage/impl/StorageServiceDataConnectorParser.java
@@ -55,7 +55,8 @@ public class StorageServiceDataConnectorParser extends AbstractDataConnectorPars
@Nonnull private final Logger log = LoggerFactory.getLogger(StorageServiceDataConnectorParser.class);
/** {@inheritDoc} */
- @Override protected Class<StorageServiceDataConnector> getBeanClass(final Element element) {
+ @Override
+ @Nullable protected Class<StorageServiceDataConnector> getBeanClass(@Nonnull final Element element) {
return StorageServiceDataConnector.class;
}
@@ -100,7 +101,8 @@ public class StorageServiceDataConnectorParser extends AbstractDataConnectorPars
builder.addPropertyValue("resultsCache", v2Parser.createCache(parserContext));
}
- builder.addPropertyReference("storageService", config.getAttributeNS(null, "storageServiceRef"));
+ builder.addPropertyReference("storageService",
+ AttributeSupport.getRequiredAttributeValue(config, null, "storageServiceRef"));
final String noResultIsError =
AttributeSupport.getAttributeValue(config, new QName("noResultIsError"));
@@ -187,7 +189,7 @@ public class StorageServiceDataConnectorParser extends AbstractDataConnectorPars
if (configElement.hasAttributeNS(null, "customObjectRef")) {
templateBuilder.addPropertyReference("customObject",
- configElement.getAttributeNS(null, "customObjectRef"));
+ AttributeSupport.getRequiredAttributeValue(configElement, null, "customObjectRef"));
}
templateBuilder.addPropertyValue("contextTemplateText", contextTemplate.getTextContent());
@@ -243,7 +245,7 @@ public class StorageServiceDataConnectorParser extends AbstractDataConnectorPars
*/
@Nullable public BeanDefinition createCache(@Nonnull final ParserContext parserContext) {
final CacheConfigParser parser = new CacheConfigParser(configElement);
- return parser.createCache(parserContext);
+ return parser.createCache();
}
/** The parent parser's log prefix.
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/BaseAttributeEncoderParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/BaseAttributeEncoderParser.java
index 0ac39a616..67358dcbb 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/BaseAttributeEncoderParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/BaseAttributeEncoderParser.java
@@ -21,6 +21,7 @@ import java.util.List;
import java.util.Map;
import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
import javax.xml.namespace.QName;
import org.slf4j.Logger;
@@ -57,7 +58,7 @@ public abstract class BaseAttributeEncoderParser extends AbstractCustomBeanDefin
/** {@inheritDoc} */
@Override
- protected Class<TranscodingRule> getBeanClass(final Element element) {
+ @Nullable protected Class<TranscodingRule> getBeanClass(@Nonnull final Element element) {
return TranscodingRule.class;
}
@@ -76,7 +77,8 @@ public abstract class BaseAttributeEncoderParser extends AbstractCustomBeanDefin
/** {@inheritDoc} */
// Checkstyle: CyclomaticComplexity OFF
@Override
- protected void doParse(final Element config, final ParserContext context, final BeanDefinitionBuilder builder) {
+ protected void doParse(@Nonnull final Element config, @Nonnull final ParserContext context,
+ @Nonnull final BeanDefinitionBuilder builder) {
final ManagedMap<String, Object> rule = new ManagedMap<>();
@@ -114,7 +116,7 @@ public abstract class BaseAttributeEncoderParser extends AbstractCustomBeanDefin
log.warn("relyingParties ignored, using activationConditionRef");
}
rule.put(AttributeTranscoderRegistry.PROP_CONDITION, new RuntimeBeanReference(
- StringSupport.trimOrNull(config.getAttributeNS(null, "activationConditionRef"))));
+ AttributeSupport.getRequiredAttributeValue(config, null, "activationConditionRef")));
} else if (config.hasAttributeNS(null, "relyingParties")) {
rule.put(AttributeTranscoderRegistry.PROP_RELYINGPARTIES, config.getAttributeNS(null, "relyingParties"));
} else {
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML1Base64AttributeEncoderParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML1Base64AttributeEncoderParser.java
index 6cfe0b11f..7aba0dbe8 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML1Base64AttributeEncoderParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML1Base64AttributeEncoderParser.java
@@ -38,7 +38,7 @@ public class SAML1Base64AttributeEncoderParser extends BaseSAML1AttributeEncoder
/** {@inheritDoc} */
@Override
- protected BeanReference buildTranscoder() {
+ @Nonnull protected BeanReference buildTranscoder() {
return new RuntimeBeanReference("SAML1ByteTranscoder");
}
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML1ScopedStringAttributeEncoderParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML1ScopedStringAttributeEncoderParser.java
index 8c87e38fc..74ae6a766 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML1ScopedStringAttributeEncoderParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML1ScopedStringAttributeEncoderParser.java
@@ -64,7 +64,7 @@ public class SAML1ScopedStringAttributeEncoderParser extends BaseSAML1AttributeE
/** {@inheritDoc} */
@Override
- protected BeanReference buildTranscoder() {
+ @Nonnull protected BeanReference buildTranscoder() {
return new RuntimeBeanReference("SAML1ScopedStringTranscoder");
}
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML1StringAttributeEncoderParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML1StringAttributeEncoderParser.java
index e71f747ea..b46a4b789 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML1StringAttributeEncoderParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML1StringAttributeEncoderParser.java
@@ -38,7 +38,7 @@ public class SAML1StringAttributeEncoderParser extends BaseSAML1AttributeEncoder
/** {@inheritDoc} */
@Override
- protected BeanReference buildTranscoder() {
+ @Nonnull protected BeanReference buildTranscoder() {
return new RuntimeBeanReference("SAML1StringTranscoder");
}
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML1XMLObjectAttributeEncoderParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML1XMLObjectAttributeEncoderParser.java
index 97a030919..acd472bae 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML1XMLObjectAttributeEncoderParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML1XMLObjectAttributeEncoderParser.java
@@ -36,7 +36,7 @@ public class SAML1XMLObjectAttributeEncoderParser extends BaseSAML1AttributeEnco
/** {@inheritDoc} */
@Override
- protected BeanReference buildTranscoder() {
+ @Nonnull protected BeanReference buildTranscoder() {
return new RuntimeBeanReference("SAML1XMLObjectTranscoder");
}
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML2Base64AttributeEncoderParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML2Base64AttributeEncoderParser.java
index 8b78057aa..a14cdfa94 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML2Base64AttributeEncoderParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML2Base64AttributeEncoderParser.java
@@ -38,7 +38,7 @@ public class SAML2Base64AttributeEncoderParser extends BaseSAML2AttributeEncoder
/** {@inheritDoc} */
@Override
- protected BeanReference buildTranscoder() {
+ @Nonnull protected BeanReference buildTranscoder() {
return new RuntimeBeanReference("SAML2ByteTranscoder");
}
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML2DateTimeAttributeEncoderParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML2DateTimeAttributeEncoderParser.java
index 60b9b4180..be00f0ca2 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML2DateTimeAttributeEncoderParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML2DateTimeAttributeEncoderParser.java
@@ -38,7 +38,7 @@ public class SAML2DateTimeAttributeEncoderParser extends BaseSAML2AttributeEncod
/** {@inheritDoc} */
@Override
- protected BeanReference buildTranscoder() {
+ @Nonnull protected BeanReference buildTranscoder() {
return new RuntimeBeanReference("SAML2DateTimeTranscoder");
}
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML2ScopedStringAttributeEncoderParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML2ScopedStringAttributeEncoderParser.java
index cfac5bcd1..188ce6d27 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML2ScopedStringAttributeEncoderParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML2ScopedStringAttributeEncoderParser.java
@@ -64,7 +64,7 @@ public class SAML2ScopedStringAttributeEncoderParser extends BaseSAML2AttributeE
/** {@inheritDoc} */
@Override
- protected BeanReference buildTranscoder() {
+ @Nonnull protected BeanReference buildTranscoder() {
return new RuntimeBeanReference("SAML2ScopedStringTranscoder");
}
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML2StringAttributeEncoderParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML2StringAttributeEncoderParser.java
index 0ae5203a6..8f1a77335 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML2StringAttributeEncoderParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML2StringAttributeEncoderParser.java
@@ -38,7 +38,7 @@ public class SAML2StringAttributeEncoderParser extends BaseSAML2AttributeEncoder
/** {@inheritDoc} */
@Override
- protected BeanReference buildTranscoder() {
+ @Nonnull protected BeanReference buildTranscoder() {
return new RuntimeBeanReference("SAML2StringTranscoder");
}
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML2XMLObjectAttributeEncoderParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML2XMLObjectAttributeEncoderParser.java
index 2cf1a92ce..fda45e400 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML2XMLObjectAttributeEncoderParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML2XMLObjectAttributeEncoderParser.java
@@ -36,7 +36,7 @@ public class SAML2XMLObjectAttributeEncoderParser extends BaseSAML2AttributeEnco
/** {@inheritDoc} */
@Override
- protected BeanReference buildTranscoder() {
+ @Nonnull protected BeanReference buildTranscoder() {
return new RuntimeBeanReference("SAML2XMLObjectTranscoder");
}
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/impl/AbstractResolverPluginFactoryBean.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/impl/AbstractResolverPluginFactoryBean.java
index 18b633343..8b72c9bc2 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/impl/AbstractResolverPluginFactoryBean.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/impl/AbstractResolverPluginFactoryBean.java
@@ -142,24 +142,33 @@ public abstract class AbstractResolverPluginFactoryBean<T extends AbstractResolv
}
/**
- * Set the locally define values into the object under construction.
+ * Set the locally defined values into the object under construction.
* @param what the object being built.
*/
- protected void setValues(@Nonnull final T what) {
- if (null != getId()) {
- what.setId(getId());
+ protected void setValues(@Nonnull final T what) {
+ final String id = getId();
+ if (null != id) {
+ what.setId(id);
}
- if (null != getActivationCondition()) {
- what.setActivationCondition(getActivationCondition());
+
+ final Predicate<ProfileRequestContext> condition = getActivationCondition();
+ if (null != condition) {
+ what.setActivationCondition(condition);
}
- if (null != getAttributeDependencies()) {
- what.setAttributeDependencies(getAttributeDependencies());
+
+ final Set<ResolverAttributeDefinitionDependency> depad = getAttributeDependencies();
+ if (null != depad) {
+ what.setAttributeDependencies(depad);
}
- if (null != getDataConnectorDependencies()) {
- what.setDataConnectorDependencies(getDataConnectorDependencies());
+
+ final Set<ResolverDataConnectorDependency> depdc = getDataConnectorDependencies();
+ if (null != depdc) {
+ what.setDataConnectorDependencies(depdc);
}
- if (null != getPropagateResolutionExceptions()) {
- what.setPropagateResolutionExceptions(getPropagateResolutionExceptions());
+
+ final Boolean flag = getPropagateResolutionExceptions();
+ if (null != flag) {
+ what.setPropagateResolutionExceptions(flag);
}
}
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/impl/AttributeResolverParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/impl/AttributeResolverParser.java
index 5dbd38030..24a877ba7 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/impl/AttributeResolverParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/impl/AttributeResolverParser.java
@@ -21,6 +21,7 @@ import java.util.List;
import java.util.Map;
import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
import javax.xml.namespace.QName;
import org.springframework.beans.factory.config.BeanDefinition;
@@ -58,11 +59,12 @@ public class AttributeResolverParser implements BeanDefinitionParser {
/**
* {@inheritDoc}
*/
- @Override public BeanDefinition parse(final Element config, final ParserContext context) {
+ @Override
+ @Nullable public BeanDefinition parse(@Nonnull final Element config, @Nonnull final ParserContext context) {
final Map<QName, List<Element>> configChildren = ElementSupport.getIndexedChildElements(config);
+
List<Element> children;
-
children = configChildren.get(BaseAttributeDefinitionParser.ELEMENT_NAME);
SpringSupport.parseLazyInitCustomElements(children, context);
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/impl/AttributeResolverServiceStrategy.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/impl/AttributeResolverServiceStrategy.java
index c17673e27..a267fb170 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/impl/AttributeResolverServiceStrategy.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/impl/AttributeResolverServiceStrategy.java
@@ -68,6 +68,10 @@ public class AttributeResolverServiceStrategy extends AbstractIdentifiableInitia
/** {@inheritDoc} */
@Nullable public AbstractServiceableComponent<AttributeResolver> apply(@Nullable final ApplicationContext appContext) {
+ if (appContext == null) {
+ throw new ServiceException("ApplicationContext was null");
+ }
+
final Collection<AttributeDefinition> definitions =
appContext.getBeansOfType(AttributeDefinition.class).values();
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/impl/InputDataConnectorParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/impl/InputDataConnectorParser.java
index e985f625e..98d9d73d3 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/impl/InputDataConnectorParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/impl/InputDataConnectorParser.java
@@ -45,7 +45,8 @@ public class InputDataConnectorParser extends BaseResolverPluginDependencyParser
@Nonnull private final Logger log = LoggerFactory.getLogger(InputDataConnectorParser.class);
/** {@inheritDoc} */
- @Override protected Class<ResolverDataConnectorDependency> getBeanClass(@Nullable final Element element) {
+ @Override
+ @Nullable protected Class<ResolverDataConnectorDependency> getBeanClass(@Nonnull final Element element) {
return ResolverDataConnectorDependency.class;
}
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/AttributeMapperTest.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/AttributeMapperTest.java
index 2a4009ffc..c061d2e47 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/AttributeMapperTest.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/AttributeMapperTest.java
@@ -25,6 +25,8 @@ import java.util.HashSet;
import java.util.Locale;
import java.util.Map;
+import javax.annotation.Nullable;
+
import org.opensaml.core.testing.OpenSAMLInitBaseTestCase;
import org.opensaml.saml.saml2.core.Attribute;
import org.springframework.context.support.ConversionServiceFactoryBean;
@@ -50,14 +52,13 @@ import net.shibboleth.shared.spring.custom.SchemaTypeAwareXMLBeanDefinitionReade
@SuppressWarnings("javadoc")
public class AttributeMapperTest extends OpenSAMLInitBaseTestCase {
- private GenericApplicationContext pendingTeardownContext = null;
+ @Nullable private GenericApplicationContext pendingTeardownContext = null;
@AfterMethod public void tearDownTestContext() {
- if (null == pendingTeardownContext ) {
- return;
+ if (null != pendingTeardownContext ) {
+ pendingTeardownContext.close();
+ pendingTeardownContext = null;
}
- pendingTeardownContext.close();
- pendingTeardownContext = null;
}
protected void setTestContext(GenericApplicationContext context) {
@@ -88,7 +89,8 @@ public class AttributeMapperTest extends OpenSAMLInitBaseTestCase {
final ReloadableService<AttributeTranscoderRegistry> transcoderRegistry = context.getBean(ReloadableService.class);
try (final ServiceableComponent<AttributeTranscoderRegistry> serviceableComponent = transcoderRegistry.getServiceableComponent()){
-
+ assert serviceableComponent != null;
+
final IdPAttribute idpattr = new IdPAttribute("eduPersonScopedAffiliation");
Collection<TranscodingRule> rulesets = serviceableComponent.getComponent().getTranscodingRules(
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/AttributeMappingNodeProcessorTest.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/AttributeMappingNodeProcessorTest.java
index e949ba53b..1f7a2fd1e 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/AttributeMappingNodeProcessorTest.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/AttributeMappingNodeProcessorTest.java
@@ -24,6 +24,9 @@ import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
import org.opensaml.core.testing.XMLObjectBaseTestCase;
import org.opensaml.saml.metadata.resolver.filter.FilterException;
import org.opensaml.saml.saml2.metadata.AttributeConsumingService;
@@ -52,23 +55,22 @@ import net.shibboleth.shared.spring.custom.SchemaTypeAwareXMLBeanDefinitionReade
@SuppressWarnings("javadoc")
public class AttributeMappingNodeProcessorTest extends XMLObjectBaseTestCase {
- private EntityDescriptor entityDescriptor;
+ @Nullable private EntityDescriptor entityDescriptor;
- private ReloadableService<AttributeTranscoderRegistry> service;
+ @Nullable private ReloadableService<AttributeTranscoderRegistry> service;
- private AttributeMappingNodeProcessor processor;
+ @Nullable private AttributeMappingNodeProcessor processor;
- private GenericApplicationContext pendingTeardownContext = null;
+ @Nullable private GenericApplicationContext pendingTeardownContext;
@AfterClass public void tearDownTestContext() {
- if (null == pendingTeardownContext ) {
- return;
+ if (null != pendingTeardownContext ) {
+ pendingTeardownContext.close();
+ pendingTeardownContext = null;
}
- pendingTeardownContext.close();
- pendingTeardownContext = null;
}
- protected void setTestContext(GenericApplicationContext context) {
+ protected void setTestContext(@Nullable GenericApplicationContext context) {
tearDownTestContext();
pendingTeardownContext = context;
}
@@ -77,12 +79,12 @@ public class AttributeMappingNodeProcessorTest extends XMLObjectBaseTestCase {
entityDescriptor = unmarshallElement("/net/shibboleth/idp/saml/attribute/impl/metadata.xml");
assertNotNull(entityDescriptor);
service = getService();
- assertNotNull(service);
+ assert service != null;
processor = new AttributeMappingNodeProcessor(service);
}
- private ReloadableService<AttributeTranscoderRegistry> getService() {
- GenericApplicationContext context = new GenericApplicationContext();
+ @Nonnull private ReloadableService<AttributeTranscoderRegistry> getService() {
+ final GenericApplicationContext context = new GenericApplicationContext();
setTestContext(context);
context.setDisplayName("ApplicationContext: ");
@@ -92,7 +94,7 @@ public class AttributeMappingNodeProcessorTest extends XMLObjectBaseTestCase {
context.getBeanFactory().setConversionService(service1.getObject());
- SchemaTypeAwareXMLBeanDefinitionReader beanDefinitionReader =
+ final SchemaTypeAwareXMLBeanDefinitionReader beanDefinitionReader =
new SchemaTypeAwareXMLBeanDefinitionReader(context);
beanDefinitionReader.loadBeanDefinitions(
@@ -105,15 +107,18 @@ public class AttributeMappingNodeProcessorTest extends XMLObjectBaseTestCase {
// Tests use of default mapping behavior for URI-named, string-valued tags.
@Test public void entityAttributes() throws FilterException {
-
+ assert entityDescriptor != null;
assertTrue(entityDescriptor.getObjectMetadata().get(AttributesMapContainer.class).isEmpty());
+ assert processor != null;
processor.process(entityDescriptor);
+ assert entityDescriptor != null;
final AttributesMapContainer container =
entityDescriptor.getObjectMetadata().get(AttributesMapContainer.class).get(0);
final Multimap<String, IdPAttribute> map = container.get();
+ assert map != null;
assertEquals(map.size(), 1);
Collection<IdPAttribute> attribute = map.get("http://macedir.org/entity-category");
@@ -131,18 +136,20 @@ public class AttributeMappingNodeProcessorTest extends XMLObjectBaseTestCase {
@Test public void requiredAttributes() throws FilterException {
+ assert entityDescriptor != null;
final AttributeConsumingService acs =
entityDescriptor.getSPSSODescriptor("urn:oasis:names:tc:SAML:1.1:protocol")
.getDefaultAttributeConsumingService();
assertTrue(acs.getObjectMetadata().get(AttributesMapContainer.class).isEmpty());
+ assert processor != null;
processor.process(acs);
final AttributesMapContainer container = acs.getObjectMetadata().get(AttributesMapContainer.class).get(0);
final Multimap<String,IdPAttribute> map = container.get();
-
+ assert map != null;
assertEquals(map.size(), 3);
Collection<IdPAttribute> attribute = map.get("dn1");
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/AttributeResolverTest.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/AttributeResolverTest.java
index 9f7bcd89f..fb728abb0 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/AttributeResolverTest.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/AttributeResolverTest.java
@@ -29,6 +29,7 @@ import java.util.Set;
import java.util.function.Function;
import java.util.function.Predicate;
+import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.sql.DataSource;
@@ -53,6 +54,7 @@ import net.shibboleth.idp.attribute.resolver.ResolutionException;
import net.shibboleth.idp.attribute.resolver.context.AttributeResolutionContext;
import net.shibboleth.idp.attribute.resolver.spring.testing.BaseAttributeDefinitionParserTest;
import net.shibboleth.idp.attribute.resolver.testing.TestSources;
+import net.shibboleth.shared.annotation.constraint.NotEmpty;
import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.logic.Constraint;
import net.shibboleth.shared.security.DataSealer;
@@ -75,30 +77,29 @@ public class AttributeResolverTest extends OpenSAMLInitBaseTestCase {
private final Logger log = LoggerFactory.getLogger(AttributeResolverTest.class);
/* LDAP */
- private InMemoryDirectory directoryServer;
+ @Nullable private InMemoryDirectory directoryServer;
- private static final String LDAP_INIT_FILE =
+ @Nonnull @NotEmpty private static final String LDAP_INIT_FILE =
"/net/shibboleth/idp/attribute/resolver/spring/ldapDataConnectorTest.ldif";
/** DataBase initialise */
- private static final String DB_INIT_FILE = "/net/shibboleth/idp/attribute/resolver/spring/RdbmsStore.sql";
+ @Nonnull @NotEmpty private static final String DB_INIT_FILE = "/net/shibboleth/idp/attribute/resolver/spring/RdbmsStore.sql";
/** DataBase Populate */
- private static final String DB_DATA_FILE = "/net/shibboleth/idp/attribute/resolver/spring/RdbmsData.sql";
+ @Nonnull @NotEmpty private static final String DB_DATA_FILE = "/net/shibboleth/idp/attribute/resolver/spring/RdbmsData.sql";
- private DataSource datasource;
+ @Nullable private DataSource datasource;
- private GenericApplicationContext pendingTeardownContext = null;
+ @Nullable private GenericApplicationContext pendingTeardownContext;
@AfterMethod public void tearDownTestContext() {
- if (null == pendingTeardownContext ) {
- return;
+ if (null != pendingTeardownContext ) {
+ pendingTeardownContext.close();
+ pendingTeardownContext = null;
}
- pendingTeardownContext.close();
- pendingTeardownContext = null;
}
- protected void setTestContext(final GenericApplicationContext context) {
+ protected void setTestContext(@Nullable final GenericApplicationContext context) {
tearDownTestContext();
pendingTeardownContext = context;
}
@@ -120,13 +121,21 @@ public class AttributeResolverTest extends OpenSAMLInitBaseTestCase {
/**
* Shutdown the in-memory directory server.
+ * @throws InterruptedException
*/
- @AfterClass public void teardownDataConnectors() {
- assertEquals(directoryServer.openConnectionCount(), 0);
- directoryServer.stop(true);
+ @AfterClass public void teardownDataConnectors() throws InterruptedException {
+ if (directoryServer != null) {
+ if (directoryServer.openConnectionCount() > 0) {
+ Thread.sleep(100);
+ }
+ assert directoryServer != null;
+ assertEquals(directoryServer.openConnectionCount(), 0);
+ assert directoryServer != null;
+ directoryServer.stop(true);
+ }
}
- private ReloadableService<AttributeResolver> getResolver(final String file) {
+ @Nonnull private ReloadableService<AttributeResolver> getResolver(@Nonnull @NotEmpty final String file) {
final GenericApplicationContext context = new GenericApplicationContext();
context.getBeanFactory().addBeanPostProcessor(new IdentifiableBeanPostProcessor());
setTestContext(context);
@@ -208,7 +217,7 @@ public class AttributeResolverTest extends OpenSAMLInitBaseTestCase {
TestSources.createResolutionContext("PETER_THE_PRINCIPAL", "issuer", "recipient");
try (final ServiceableComponent<AttributeResolver> serviceableComponent = attributeResolverService.getServiceableComponent()) {
-
+ assert serviceableComponent != null;
final AttributeResolver resolver = serviceableComponent.getComponent();
assertEquals(resolver.getId(), "Shibboleth.Resolver");
resolver.resolveAttributes(resolutionContext);
@@ -320,6 +329,7 @@ public class AttributeResolverTest extends OpenSAMLInitBaseTestCase {
TestSources.createResolutionContext("PETER_THE_PRINCIPAL", "issuer", "recipient");
try (final ServiceableComponent<AttributeResolver> serviceableComponent = attributeResolverService.getServiceableComponent()) {
+ assert serviceableComponent != null;
final AttributeResolver resolver = serviceableComponent.getComponent();
assertEquals(resolver.getId(), "Shibboleth.Resolver");
resolver.resolveAttributes(resolutionContext);
@@ -451,7 +461,7 @@ public class AttributeResolverTest extends OpenSAMLInitBaseTestCase {
TestSources.createResolutionContext("PETER_THE_PRINCIPAL", "issuer", "recipient");
try (final ServiceableComponent<AttributeResolver> serviceableComponent = attributeResolverService.getServiceableComponent()) {
-
+ assert serviceableComponent != null;
final AttributeResolver resolver = serviceableComponent.getComponent();
assertEquals(resolver.getId(), "MultiFileResolver");
resolver.resolveAttributes(resolutionContext);
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/IdP1676Test.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/IdP1676Test.java
index 65b90db45..8e10c948a 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/IdP1676Test.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/IdP1676Test.java
@@ -25,6 +25,9 @@ import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
import org.opensaml.core.testing.OpenSAMLInitBaseTestCase;
import org.springframework.context.support.ConversionServiceFactoryBean;
import org.springframework.context.support.GenericApplicationContext;
@@ -40,7 +43,7 @@ import net.shibboleth.idp.attribute.resolver.AttributeResolver;
import net.shibboleth.idp.attribute.resolver.ResolutionException;
import net.shibboleth.idp.attribute.resolver.context.AttributeResolutionContext;
import net.shibboleth.idp.attribute.resolver.testing.TestSources;
-import net.shibboleth.shared.collection.Pair;
+import net.shibboleth.shared.annotation.constraint.NotEmpty;
import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.service.ReloadableService;
import net.shibboleth.shared.service.ServiceableComponent;
@@ -48,24 +51,24 @@ import net.shibboleth.shared.spring.config.IdentifiableBeanPostProcessor;
import net.shibboleth.shared.spring.config.StringToDurationConverter;
import net.shibboleth.shared.spring.custom.SchemaTypeAwareXMLBeanDefinitionReader;
import net.shibboleth.shared.testing.InMemoryDirectory;
+import net.shibboleth.spring.testing.AbstractFailFastTest.MockProperty;
@SuppressWarnings("javadoc")
public class IdP1676Test extends OpenSAMLInitBaseTestCase {
/* LDAP */
- private InMemoryDirectory directoryServer;
+ @Nullable private InMemoryDirectory directoryServer;
- private static final String LDAP_INIT_FILE =
+ @Nonnull @NotEmpty private static final String LDAP_INIT_FILE =
"/net/shibboleth/idp/attribute/resolver/spring/ldapDataConnectorTest.ldif";
- private GenericApplicationContext pendingTeardownContext = null;
+ @Nullable private GenericApplicationContext pendingTeardownContext;
@AfterMethod public void tearDownTestContext() {
- if (null == pendingTeardownContext ) {
- return;
+ if (null != pendingTeardownContext ) {
+ pendingTeardownContext.close();
+ pendingTeardownContext = null;
}
- pendingTeardownContext.close();
- pendingTeardownContext = null;
}
@AfterClass public void teardown() {
@@ -103,14 +106,14 @@ public class IdP1676Test extends OpenSAMLInitBaseTestCase {
final GenericApplicationContext context = new GenericApplicationContext();
context.getBeanFactory().addBeanPostProcessor(new IdentifiableBeanPostProcessor());
- final Pair<String, String> pRE = new Pair<>("propagateResolutionExceptions", propagateResolutionExceptions ? "true": "false");
- final Pair<String, String> fF = new Pair<>("failfast", failFast ? "true": "false");
- final List<Pair<String, String>> properties = List.of(pRE,fF);
+ final MockProperty pRE = new MockProperty("propagateResolutionExceptions", propagateResolutionExceptions ? "true": "false");
+ final MockProperty fF = new MockProperty("failfast", failFast ? "true": "false");
+ final List<MockProperty> properties = List.of(pRE,fF);
final MutablePropertySources propertySources = context.getEnvironment().getPropertySources();
final MockPropertySource mockEnvVars = new MockPropertySource();
- for (final Pair<String, String> p :properties) {
- mockEnvVars.setProperty(p.getFirst(), p.getSecond());
+ for (final MockProperty p :properties) {
+ mockEnvVars.setProperty(p.name(), p.value());
}
propertySources.replace(StandardEnvironment.SYSTEM_PROPERTIES_PROPERTY_SOURCE_NAME, mockEnvVars);
@@ -138,7 +141,8 @@ public class IdP1676Test extends OpenSAMLInitBaseTestCase {
private void testResolve(ReloadableService<AttributeResolver> resolverService, int attributeCount) throws ResolutionException {
final AttributeResolutionContext resolutionContext =
TestSources.createResolutionContext("PETER_THE_PRINCIPAL", "issuer", "recipient");
- try (final ServiceableComponent<AttributeResolver> serviceableComponent = resolverService.getServiceableComponent()){
+ try (final ServiceableComponent<AttributeResolver> serviceableComponent = resolverService.getServiceableComponent()) {
+ assert serviceableComponent != null;
serviceableComponent.getComponent().resolveAttributes(resolutionContext);
}
assertEquals(resolutionContext.getResolvedIdPAttributes().size(), attributeCount);
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/DateTimeAttributeDefinitionParserTest.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/DateTimeAttributeDefinitionParserTest.java
index 7a0a7b7c5..3077faedb 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/DateTimeAttributeDefinitionParserTest.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/DateTimeAttributeDefinitionParserTest.java
@@ -54,7 +54,7 @@ public class DateTimeAttributeDefinitionParserTest extends BaseAttributeDefiniti
assertTrue(attrDef.isIgnoreConversionErrors());
final DateTimeFormatter formatter = attrDef.getDateTimeFormatter();
- assertNotNull(formatter);
+ assert formatter != null;
assertEquals(formatter.format(ZonedDateTime.ofInstant(Instant.ofEpochSecond(100), ZoneId.of("UTC"))), "1970");
}
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/ScopedAttributeDefinitionParserTest.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/ScopedAttributeDefinitionParserTest.java
index 5f5ab5495..5fbfc6eae 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/ScopedAttributeDefinitionParserTest.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/ScopedAttributeDefinitionParserTest.java
@@ -17,8 +17,7 @@
package net.shibboleth.idp.attribute.resolver.spring.ad.impl;
-import static org.testng.Assert.assertNull;
-import static org.testng.Assert.fail;
+import static org.testng.Assert.*;
import org.springframework.beans.factory.BeanCreationException;
@@ -56,10 +55,11 @@ public class ScopedAttributeDefinitionParserTest extends BaseAttributeDefinition
try {
getAttributeDefn("resolver/scopedBoth.xml", ScopedAttributeDefinition.class);
} catch (final BeanCreationException e) {
- assertEquals(e.getRootCause().getClass(), ComponentInitializationException.class);
+ final Throwable cause = e.getRootCause();
+ assertTrue(cause instanceof ComponentInitializationException);
return;
}
fail("Did not catch impossible setup");
}
-}
+}
\ No newline at end of file
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SimpleAttributeParserTest.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SimpleAttributeParserTest.java
index d84de6fa1..6e7634613 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SimpleAttributeParserTest.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SimpleAttributeParserTest.java
@@ -126,8 +126,10 @@ public class SimpleAttributeParserTest extends BaseAttributeDefinitionParserTest
final AttributeDefinition attr = getAttributeDefn("resolver/resolutionPhases.xml", SimpleAttributeDefinition.class, context);
final ResolutionLabelPredicate pre = (ResolutionLabelPredicate) attr.getActivationCondition();
+ assert pre != null;
final ProfileRequestContext prc = new ProfileRequestContext();
final AttributeResolutionContext resContext = prc.getSubcontext(AttributeResolutionContext.class, true);
+ assert resContext != null;
resContext.setResolutionLabel("p1");
assertTrue(pre.test(prc));
resContext.setResolutionLabel("p2 p3");
@@ -153,8 +155,10 @@ public class SimpleAttributeParserTest extends BaseAttributeDefinitionParserTest
final AttributeDefinition attr = getAttributeDefn("resolver/excludeResolutionPhases.xml", SimpleAttributeDefinition.class, context);
final Predicate<ProfileRequestContext> pre = attr.getActivationCondition();
+ assert pre != null;
final ProfileRequestContext prc = new ProfileRequestContext();
final AttributeResolutionContext resContext = prc.getSubcontext(AttributeResolutionContext.class, true);
+ assert resContext != null;
resContext.setResolutionLabel("p1");
assertFalse(pre.test(prc));
resContext.setResolutionLabel("p2 p3");
@@ -180,8 +184,10 @@ public class SimpleAttributeParserTest extends BaseAttributeDefinitionParserTest
final AttributeDefinition attr = getAttributeDefn("resolver/phases.xml", SimpleAttributeDefinition.class, context);
final Predicate<ProfileRequestContext> pre = attr.getActivationCondition();
+ assert pre != null;
final ProfileRequestContext prc = new ProfileRequestContext();
final AttributeResolutionContext resContext = prc.getSubcontext(AttributeResolutionContext.class, true);
+ assert resContext != null;
resContext.setResolutionLabel("p1");
assertTrue(pre.test(prc));
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/MappedAttributeDefinitionParserTest.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/MappedAttributeDefinitionParserTest.java
index 8b8efe069..548e6ae4e 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/MappedAttributeDefinitionParserTest.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/MappedAttributeDefinitionParserTest.java
@@ -27,6 +27,7 @@ import org.springframework.beans.factory.BeanCreationException;
import org.springframework.beans.factory.BeanDefinitionStoreException;
import org.testng.annotations.Test;
+import net.shibboleth.idp.attribute.StringAttributeValue;
import net.shibboleth.idp.attribute.resolver.ad.mapped.impl.MappedAttributeDefinition;
import net.shibboleth.idp.attribute.resolver.spring.testing.BaseAttributeDefinitionParserTest;
@@ -45,7 +46,9 @@ public class MappedAttributeDefinitionParserTest extends BaseAttributeDefinition
assertTrue(defn.isPassThru());
assertEquals(defn.getValueMaps().size(), 2);
- assertEquals(defn.getDefaultAttributeValue().getValue(), "foobar");
+ final StringAttributeValue defValue = defn.getDefaultAttributeValue();
+ assert defValue != null;
+ assertEquals(defValue.getValue(), "foobar");
}
@Test public void defaultCase() {
@@ -53,7 +56,9 @@ public class MappedAttributeDefinitionParserTest extends BaseAttributeDefinition
assertTrue(defn.isPassThru());
assertEquals(defn.getValueMaps().size(), 2);
- assertEquals(defn.getDefaultAttributeValue().getValue(), "foobar");
+ final StringAttributeValue defValue = defn.getDefaultAttributeValue();
+ assert defValue != null;
+ assertEquals(defValue.getValue(), "foobar");
}
@Test(expectedExceptions = {BeanCreationException.class}) public void emptyPassThru() {
@@ -61,7 +66,9 @@ public class MappedAttributeDefinitionParserTest extends BaseAttributeDefinition
assertFalse(defn.isPassThru());
assertEquals(defn.getValueMaps().size(), 2);
- assertEquals(defn.getDefaultAttributeValue().getValue(), "foobar");
+ final StringAttributeValue defValue = defn.getDefaultAttributeValue();
+ assert defValue != null;
+ assertEquals(defValue.getValue(), "foobar");
}
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/ValueMapParserTest.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/ValueMapParserTest.java
index 3eec5af0e..f9555e33d 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/ValueMapParserTest.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/ValueMapParserTest.java
@@ -20,6 +20,8 @@ package net.shibboleth.idp.attribute.resolver.spring.ad.mapped.impl;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.fail;
+import java.util.regex.Pattern;
+
import org.springframework.beans.factory.BeanDefinitionStoreException;
import org.springframework.context.support.GenericApplicationContext;
import org.testng.annotations.Test;
@@ -49,7 +51,10 @@ public class ValueMapParserTest extends BaseAttributeDefinitionParserTest {
final ValueMap value = getValueMap("valueMap.xml");
assertEquals(value.getReturnValue(), "return");
assertEquals(value.getSourceValues().size(), 1);
- assertEquals(value.getSourceValues().iterator().next().getPattern().pattern(), "source");
+
+ final Pattern pattern = value.getSourceValues().iterator().next().getPattern();
+ assert pattern != null;
+ assertEquals(pattern.pattern(), "source");
}
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/http/impl/HTTPDataConnectorParserTest.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/http/impl/HTTPDataConnectorParserTest.java
index a44be04ba..c07d0db51 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/http/impl/HTTPDataConnectorParserTest.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/http/impl/HTTPDataConnectorParserTest.java
@@ -37,6 +37,8 @@ import org.springframework.mock.env.MockPropertySource;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.Test;
+import com.google.common.cache.Cache;
+
import net.shibboleth.idp.attribute.IdPAttribute;
import net.shibboleth.idp.attribute.StringAttributeValue;
import net.shibboleth.idp.attribute.resolver.ResolutionException;
@@ -91,7 +93,7 @@ public class HTTPDataConnectorParserTest {
TestSources.SP_ENTITY_ID);
final Map<String,IdPAttribute> attrs = connector.resolve(context);
-
+ assert attrs != null;
assertEquals(attrs.size(), 2);
assertEquals(attrs.get("foo").getValues().size(), 1);
@@ -100,8 +102,9 @@ public class HTTPDataConnectorParserTest {
assertEquals(attrs.get("bar").getValues().size(), 2);
assertEquals(((StringAttributeValue)attrs.get("bar").getValues().get(0)).getValue(), "bar1");
assertEquals(((StringAttributeValue)attrs.get("bar").getValues().get(1)).getValue(), "bar2");
-
- assertTrue(connector.getResultsCache().size() == 1);
+ final Cache<String, Map<String, IdPAttribute>> cache = connector.getResultsCache();
+ assert cache != null;
+ assertTrue(cache.size() == 1);
}
@Test(expectedExceptions=ResolutionException.class) public void v2BadProtocol() throws Exception {
@@ -201,6 +204,7 @@ public class HTTPDataConnectorParserTest {
connector.resolve(context);
final Map<String,IdPAttribute> attrs = connector.resolve(context);
+ assert attrs != null;
assertEquals(attrs.size(), 2);
@@ -272,6 +276,7 @@ public class HTTPDataConnectorParserTest {
TestSources.SP_ENTITY_ID);
final Map<String,IdPAttribute> attrs = connector.resolve(context);
+ assert attrs != null;
assertEquals(attrs.size(), 2);
@@ -304,6 +309,7 @@ public class HTTPDataConnectorParserTest {
TestSources.SP_ENTITY_ID);
final Map<String,IdPAttribute> attrs = connector.resolve(context);
+ assert attrs != null;
assertEquals(attrs.size(), 2);
@@ -314,7 +320,9 @@ public class HTTPDataConnectorParserTest {
assertEquals(((StringAttributeValue)attrs.get("bar").getValues().get(0)).getValue(), "bar1");
assertEquals(((StringAttributeValue)attrs.get("bar").getValues().get(1)).getValue(), "bar2");
- assertTrue(connector.getResultsCache().size() == 1);
+ final Cache<String, Map<String, IdPAttribute>> cache = connector.getResultsCache();
+ assert cache != null;
+ assertTrue(cache.size() == 1);
}
@Test(enabled=false) public void v2ConfigPOST() throws Exception {
@@ -335,7 +343,8 @@ public class HTTPDataConnectorParserTest {
TestSources.SP_ENTITY_ID);
final Map<String,IdPAttribute> attrs = connector.resolve(context);
-
+ assert attrs != null;
+
assertEquals(attrs.size(), 2);
assertEquals(attrs.get("foo").getValues().size(), 1);
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/CacheConfigParserTest.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/CacheConfigParserTest.java
index c965d00f2..3642f812c 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/CacheConfigParserTest.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/CacheConfigParserTest.java
@@ -19,12 +19,12 @@ package net.shibboleth.idp.attribute.resolver.spring.dc.impl;
import java.io.IOException;
-import net.shibboleth.idp.attribute.resolver.spring.dc.impl.CacheConfigParser;
import net.shibboleth.shared.xml.ParserPool;
import net.shibboleth.shared.xml.XMLParserException;
import org.opensaml.core.testing.OpenSAMLInitBaseTestCase;
import org.opensaml.core.xml.config.XMLObjectProviderRegistrySupport;
+import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.context.support.GenericApplicationContext;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
@@ -34,7 +34,7 @@ import org.w3c.dom.Document;
import com.google.common.cache.Cache;
/**
- * Code to exercise the ResultCache Parser outwith the DataConnector parsers.
+ * Code to exercise the ResultCache Parser with the DataConnector parsers.
* There is no actual testing since we cannot look at what is created.
*/
@SuppressWarnings("javadoc")
@@ -43,12 +43,15 @@ public class CacheConfigParserTest extends OpenSAMLInitBaseTestCase {
@Test public void ttl() throws XMLParserException, IOException {
final ParserPool parserPool = XMLObjectProviderRegistrySupport.getParserPool();
+ assert parserPool != null;
final Resource resource= new ClassPathResource("net/shibboleth/idp/attribute/resolver/spring/dc/ResultCacheElementTimeToLive.xml");
final Document doc = parserPool.parse(resource.getInputStream());
- final CacheConfigParser ccp = new CacheConfigParser(doc.getDocumentElement());
+ final CacheConfigParser ccp = new CacheConfigParser(doc.getDocumentElement());
try (final GenericApplicationContext context = new GenericApplicationContext()) {
- context.registerBeanDefinition("ElementTTL", ccp.createCache(null));
+ final BeanDefinition cacheBean = ccp.createCache();
+ assert cacheBean != null;
+ context.registerBeanDefinition("ElementTTL", cacheBean);
context.refresh();
context.getBean("ElementTTL", Cache.class);
}
@@ -56,12 +59,15 @@ public class CacheConfigParserTest extends OpenSAMLInitBaseTestCase {
@Test public void access() throws XMLParserException, IOException {
final ParserPool parserPool = XMLObjectProviderRegistrySupport.getParserPool();
+ assert parserPool != null;
final Resource resource= new ClassPathResource("net/shibboleth/idp/attribute/resolver/spring/dc/ResultCacheExpireAfterAccess.xml");
final Document doc = parserPool.parse(resource.getInputStream());
final CacheConfigParser ccp = new CacheConfigParser(doc.getDocumentElement());
try (final GenericApplicationContext context = new GenericApplicationContext()) {
- context.registerBeanDefinition("Access", ccp.createCache(null));
+ final BeanDefinition cacheBean = ccp.createCache();
+ assert cacheBean != null;
+ context.registerBeanDefinition("Access", cacheBean);
context.refresh();
context.getBean("Access", Cache.class);
}
@@ -69,12 +75,15 @@ public class CacheConfigParserTest extends OpenSAMLInitBaseTestCase {
@Test public void write() throws XMLParserException, IOException {
final ParserPool parserPool = XMLObjectProviderRegistrySupport.getParserPool();
+ assert parserPool != null;
final Resource resource= new ClassPathResource("net/shibboleth/idp/attribute/resolver/spring/dc/ResultCacheExpireAfterWrite.xml");
final Document doc = parserPool.parse(resource.getInputStream());
final CacheConfigParser ccp = new CacheConfigParser(doc.getDocumentElement());
try (final GenericApplicationContext context = new GenericApplicationContext()) {
- context.registerBeanDefinition("Write", ccp.createCache(null));
+ final BeanDefinition cacheBean = ccp.createCache();
+ assert cacheBean != null;
+ context.registerBeanDefinition("Write", cacheBean);
context.refresh();
context.getBean("Write", Cache.class);
}
@@ -82,12 +91,15 @@ public class CacheConfigParserTest extends OpenSAMLInitBaseTestCase {
@Test public void both() throws XMLParserException, IOException {
final ParserPool parserPool = XMLObjectProviderRegistrySupport.getParserPool();
+ assert parserPool != null;
final Resource resource= new ClassPathResource("net/shibboleth/idp/attribute/resolver/spring/dc/ResultCacheExpireBoth.xml");
final Document doc = parserPool.parse(resource.getInputStream());
final CacheConfigParser ccp = new CacheConfigParser(doc.getDocumentElement());
try (final GenericApplicationContext context = new GenericApplicationContext()) {
- context.registerBeanDefinition("Write", ccp.createCache(null));
+ final BeanDefinition cacheBean = ccp.createCache();
+ assert cacheBean != null;
+ context.registerBeanDefinition("Write", cacheBean);
context.refresh();
context.getBean("Write", Cache.class);
}
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ScriptedDataConnectorParserTest.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ScriptedDataConnectorParserTest.java
index 7d8d8993f..a66585c65 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ScriptedDataConnectorParserTest.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ScriptedDataConnectorParserTest.java
@@ -53,7 +53,7 @@ public class ScriptedDataConnectorParserTest extends BaseAttributeDefinitionPars
dataConnector.initialize();
final Map<?,?> custom = (Map<?,?>) dataConnector.getCustomObject();
-
+ assert custom != null;
assertEquals(custom.size(), 1);
assertEquals(custom.get("bar"), "foo");
@@ -61,7 +61,7 @@ public class ScriptedDataConnectorParserTest extends BaseAttributeDefinitionPars
TestSources.createResolutionContext(TestSources.PRINCIPAL_ID, TestSources.IDP_ENTITY_ID,
TestSources.SP_ENTITY_ID);
final Map<String, IdPAttribute> result = dataConnector.resolve(context);
-
+ assert result != null;
assertEquals(result.size(), 3);
List<IdPAttributeValue> values = result.get("ScriptedOne").getValues();
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StoredIdDataConnectorParserTest.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StoredIdDataConnectorParserTest.java
index a74e8d9ea..ca0764cfa 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StoredIdDataConnectorParserTest.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StoredIdDataConnectorParserTest.java
@@ -63,6 +63,7 @@ public class StoredIdDataConnectorParserTest extends BaseAttributeDefinitionPars
final PairwiseIdDataConnector connector = getDataConnector("resolver/stored.xml", PairwiseIdDataConnector.class);
final JDBCPairwiseIdStore store = (JDBCPairwiseIdStore) connector.getPairwiseIdStore();
final ComputedPairwiseIdStore store2 = (ComputedPairwiseIdStore) store.getInitialValueStore();
+ assert store2 != null;
final ResolverAttributeDefinitionDependency attrib = connector.getAttributeDependencies().iterator().next();
assertEquals(attrib.getDependencyPluginId(), "theSourceRemainsTheSame");
@@ -95,6 +96,7 @@ public class StoredIdDataConnectorParserTest extends BaseAttributeDefinitionPars
DATACONNECTOR_FILE_PATH + "rdbms/rdbms-attribute-resolver-spring-context.xml");
final JDBCPairwiseIdStore store = (JDBCPairwiseIdStore) connector.getPairwiseIdStore();
final ComputedPairwiseIdStore store2 = (ComputedPairwiseIdStore) store.getInitialValueStore();
+ assert store2 != null;
final ResolverAttributeDefinitionDependency attrib = connector.getAttributeDependencies().iterator().next();
assertEquals(attrib.getDependencyPluginId(), "theSourceRemainsTheSame");
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParserTest.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParserTest.java
index ea4714df1..7e8ac5ab0 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParserTest.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParserTest.java
@@ -33,6 +33,8 @@ import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
+import javax.annotation.Nullable;
+
import org.ldaptive.BindConnectionInitializer;
import org.ldaptive.BindResponse;
import org.ldaptive.ConnectionConfig;
@@ -86,9 +88,9 @@ import net.shibboleth.shared.testing.InMemoryDirectory;
public class LDAPDataConnectorParserTest {
/** In-memory directory server. */
- private InMemoryDirectory directoryServer;
+ @Nullable private InMemoryDirectory directoryServer;
- private GenericApplicationContext pendingTeardownContext = null;
+ @Nullable private GenericApplicationContext pendingTeardownContext = null;
/** Override the default SASL client for testing. */
public static class TestSaslClient implements SaslClient<DefaultSaslClientRequest>
@@ -101,11 +103,10 @@ public class LDAPDataConnectorParserTest {
}
@AfterMethod public void tearDownTestContext() {
- if (null == pendingTeardownContext ) {
- return;
+ if (null != pendingTeardownContext ) {
+ pendingTeardownContext.close();
+ pendingTeardownContext = null;
}
- pendingTeardownContext.close();
- pendingTeardownContext = null;
}
protected void setTestContext(final GenericApplicationContext context) {
@@ -132,9 +133,13 @@ public class LDAPDataConnectorParserTest {
/**
* Shutdown the in-memory directory server.
+ * @throws InterruptedException
*/
- @AfterClass public void teardownDirectoryServer() {
- directoryServer.stop(true);
+ @AfterClass public void teardownDirectoryServer() throws InterruptedException {
+ if (directoryServer != null) {
+ directoryServer.stop(true);
+ }
+
System.clearProperty("org.ldaptive.sasl.defaultSaslClient");
}
@@ -154,7 +159,7 @@ public class LDAPDataConnectorParserTest {
TestSources.createResolutionContext(TestSources.PRINCIPAL_ID, TestSources.IDP_ENTITY_ID,
TestSources.SP_ENTITY_ID);
final Map<String, IdPAttribute> attrs = dataConnector.resolve(context);
- assertNotNull(attrs);
+ assert attrs != null;
assertEquals(2, attrs.size());
assertEquals(attrs.get("employeeNumber").getValues().get(0).getNativeValue(), "C2J20hMNp7NlUwQ+");
assertNotNull(attrs.get("entryDN"));
@@ -175,7 +180,7 @@ public class LDAPDataConnectorParserTest {
TestSources.createResolutionContext(TestSources.PRINCIPAL_ID, TestSources.IDP_ENTITY_ID,
TestSources.SP_ENTITY_ID);
final Map<String, IdPAttribute> attrs = dataConnector.resolve(context);
- assertNotNull(attrs);
+ assert attrs != null;
assertNotNull(attrs.get("entryDN"));
}
@@ -238,7 +243,7 @@ public class LDAPDataConnectorParserTest {
TestSources.createResolutionContext(TestSources.PRINCIPAL_ID, TestSources.IDP_ENTITY_ID,
TestSources.SP_ENTITY_ID);
final Map<String, IdPAttribute> attrs = dataConnector.resolve(context);
- assertNotNull(attrs);
+ assert attrs != null;
assertNotNull(attrs.get("entryDN"));
}
@@ -307,7 +312,7 @@ public class LDAPDataConnectorParserTest {
TestSources.createResolutionContext(TestSources.PRINCIPAL_ID, TestSources.IDP_ENTITY_ID,
TestSources.SP_ENTITY_ID);
final Map<String, IdPAttribute> attrs = dataConnector.resolve(context);
- assertNotNull(attrs);
+ assert attrs != null;
assertNotNull(attrs.get("entryDN"));
}
@@ -324,7 +329,7 @@ public class LDAPDataConnectorParserTest {
TestSources.createResolutionContext(TestSources.PRINCIPAL_ID, TestSources.IDP_ENTITY_ID,
TestSources.SP_ENTITY_ID);
final Map<String, IdPAttribute> attrs = dataConnector.resolve(context);
- assertNotNull(attrs);
+ assert attrs != null;
assertEquals(attrs.size(), 4);
assertNotNull(attrs.get("uid"));
assertNotNull(attrs.get("homephone"));
@@ -493,7 +498,7 @@ public class LDAPDataConnectorParserTest {
TestSources.createResolutionContext(TestSources.PRINCIPAL_ID, TestSources.IDP_ENTITY_ID,
TestSources.SP_ENTITY_ID);
final Map<String, IdPAttribute> attrs = dataConnector.resolve(context);
- assertNotNull(attrs);
+ assert attrs != null;
assertNull(attrs.get("homephone"));
assertNotNull(attrs.get("phonenumber"));
assertNotNull(attrs.get("entryDN"));
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/storage/impl/StorageServiceDataConnectorParserTest.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/storage/impl/StorageServiceDataConnectorParserTest.java
index 015198204..af2b9daf2 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/storage/impl/StorageServiceDataConnectorParserTest.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/storage/impl/StorageServiceDataConnectorParserTest.java
@@ -36,6 +36,8 @@ import org.testng.annotations.AfterMethod;
import org.testng.annotations.Test;
import org.testng.reporters.Files;
+import com.google.common.cache.Cache;
+
import net.shibboleth.idp.attribute.IdPAttribute;
import net.shibboleth.idp.attribute.StringAttributeValue;
import net.shibboleth.idp.attribute.resolver.NoResultAnErrorResolutionException;
@@ -80,13 +82,16 @@ public class StorageServiceDataConnectorParserTest {
TestSources.SP_ENTITY_ID);
final Map<String,IdPAttribute> attrs = connector.resolve(context);
+ assert attrs != null;
assertEquals(attrs.size(), 1);
assertEquals(attrs.get("test").getValues().size(), 1);
assertEquals(((StringAttributeValue)attrs.get("test").getValues().get(0)).getValue(), "testdata");
- assertTrue(connector.getResultsCache().size() == 1);
+ final Cache<String, Map<String, IdPAttribute>> cache = connector.getResultsCache();
+ assert cache != null;
+ assertTrue(cache.size() == 1);
}
@Test public void v2Config() throws Exception {
@@ -108,6 +113,7 @@ public class StorageServiceDataConnectorParserTest {
TestSources.SP_ENTITY_ID);
final Map<String,IdPAttribute> attrs = connector.resolve(context);
+ assert attrs != null;
assertEquals(attrs.size(), 2);
@@ -118,7 +124,9 @@ public class StorageServiceDataConnectorParserTest {
assertEquals(((StringAttributeValue)attrs.get("bar").getValues().get(0)).getValue(), "bar1");
assertEquals(((StringAttributeValue)attrs.get("bar").getValues().get(1)).getValue(), "bar2");
- assertTrue(connector.getResultsCache().size() == 1);
+ final Cache<String, Map<String, IdPAttribute>> cache = connector.getResultsCache();
+ assert cache != null;
+ assertTrue(cache.size() == 1);
}
@Test(expectedExceptions=NoResultAnErrorResolutionException.class) public void v2Missing() throws Exception {
@@ -156,6 +164,7 @@ public class StorageServiceDataConnectorParserTest {
TestSources.SP_ENTITY_ID);
final Map<String,IdPAttribute> attrs = connector.resolve(context);
+ assert attrs != null;
assertTrue(attrs.isEmpty());
}
@@ -179,6 +188,7 @@ public class StorageServiceDataConnectorParserTest {
TestSources.SP_ENTITY_ID);
final Map<String,IdPAttribute> attrs = connector.resolve(context);
+ assert attrs != null;
assertEquals(attrs.size(), 2);
@@ -189,7 +199,9 @@ public class StorageServiceDataConnectorParserTest {
assertEquals(((StringAttributeValue)attrs.get("bar").getValues().get(0)).getValue(), "bar1");
assertEquals(((StringAttributeValue)attrs.get("bar").getValues().get(1)).getValue(), "bar2");
- assertTrue(connector.getResultsCache().size() == 1);
+ final Cache<String, Map<String, IdPAttribute>> cache = connector.getResultsCache();
+ assert cache != null;
+ assertTrue(cache.size() == 1);
}
private StorageServiceDataConnector getDataConnector(final PropertySource<?> propSource, final String... beanDefinitions)
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/failfast/AttributeResolverFailFastTest.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/failfast/AttributeResolverFailFastTest.java
index 1d71f2130..c104da3b5 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/failfast/AttributeResolverFailFastTest.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/failfast/AttributeResolverFailFastTest.java
@@ -24,6 +24,8 @@ import static org.testng.Assert.assertNull;
import java.io.IOException;
import java.util.Optional;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
import javax.sql.DataSource;
import org.springframework.core.io.ClassPathResource;
@@ -35,6 +37,7 @@ import org.testng.annotations.Test;
import net.shibboleth.idp.attribute.resolver.AttributeResolver;
import net.shibboleth.idp.attribute.resolver.spring.dc.rdbms.impl.RDBMSDataConnectorParserTest;
+import net.shibboleth.shared.annotation.constraint.NotEmpty;
import net.shibboleth.shared.service.ReloadableService;
import net.shibboleth.shared.service.ServiceableComponent;
import net.shibboleth.shared.testing.DatabaseTestingSupport;
@@ -45,12 +48,12 @@ import net.shibboleth.shared.testing.InMemoryDirectory;
@SuppressWarnings({"unchecked", "javadoc"})
public class AttributeResolverFailFastTest extends AbstractFailFastTest {
- protected String getPath() {
+ @Nonnull @NotEmpty protected String getPath() {
return "/net/shibboleth/idp/attribute/resolver/failfast/";
}
- private InMemoryDirectory directoryServer;
- private DataSource datasource;
+ @Nullable private InMemoryDirectory directoryServer;
+ @Nullable private DataSource datasource;
@BeforeClass(enabled = false) public void setupDirectoryServer() {
//
@@ -78,7 +81,9 @@ public class AttributeResolverFailFastTest extends AbstractFailFastTest {
if (directoryServer.openConnectionCount() > 0) {
Thread.sleep(100);
}
+ assert directoryServer != null;
assertEquals(directoryServer.openConnectionCount(), 0);
+ assert directoryServer != null;
directoryServer.stop(true);
}
}
@@ -87,7 +92,10 @@ public class AttributeResolverFailFastTest extends AbstractFailFastTest {
final Object bean = getBean(props, "attributeResolverBeansDefaultFF.xml");
final ReloadableService<AttributeResolver > service = (ReloadableService<AttributeResolver>) bean;
assertNotNull(service);
- final AttributeResolver resolver = service.getServiceableComponent().getComponent();
+ final ServiceableComponent<AttributeResolver> component = service.getServiceableComponent();
+ assertNotNull(component);
+ assert component != null;
+ final AttributeResolver resolver = component.getComponent();
assertNotNull(resolver);
}
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list