[java-shib-attribute] 02/02: IDP-2069, JSSH-30 Null handling task
Rod Widdowson
rdw at steadingsoftware.com
Thu May 4 13:17:25 UTC 2023
This is an automated email from the git hooks/post-receive script.
rdw pushed a commit to branch main
in repository java-shib-attribute.
View the commit online:
http://git.shibboleth.net/view/?p=java-shib-attribute.git;a=commit;h=d8a6b3c4c5b423846bf18386e952ac6fbf102899
commit d8a6b3c4c5b423846bf18386e952ac6fbf102899
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Thu May 4 14:16:16 2023 +0100
IDP-2069, JSSH-30 Null handling task
https://shibboleth.atlassian.net/browse/IDP-2069
https://shibboleth.atlassian.net/browse/JSSH-30
More warning fixes and annotation adding.
---
.../config/BeanConfigurationLookupStrategy.java | 4 +-
.../transcoding/AbstractAttributeTranscoder.java | 1 +
.../impl/AttributeTranscoderRegistryImpl.java | 14 +++++--
.../attribute/impl/JDBCPairwiseIdStoreTest.java | 8 +++-
.../impl/AttributeTranscoderRegistryImplTest.java | 15 +++++++-
.../attribute/transcoding/impl/PairTranscoder.java | 8 +++-
.../dc/rdbms/FormatExecutableStatementBuilder.java | 4 +-
.../ad/impl/DateTimeAttributeDefinition.java | 11 ++++--
.../dc/http/impl/AbstractHTTPSearchBuilder.java | 4 +-
.../resolver/dc/http/impl/HTTPDataConnector.java | 7 +++-
.../dc/http/impl/TemplatedBodyBuilder.java | 6 +--
.../impl/ScriptedStorageMappingStrategy.java | 15 ++++++--
.../ad/impl/DateTimeAttributeDefinitionTest.java | 12 ++++--
.../resolver/ad/impl/DecryptedAttributeTest.java | 9 ++++-
.../idp/attribute/resolver/ad/impl/LogicTest.java | 5 +--
.../resolver/ad/impl/RegexAtributeTest.java | 4 +-
.../resolver/ad/impl/ScopedAttributeTest.java | 6 +--
.../resolver/ad/impl/ScriptedAttributeTest.java | 24 ++++++++----
.../ad/mapped/impl/MappedAttributeTest.java | 5 ++-
.../dc/http/impl/HTTPDataConnectorTest.java | 15 +++++---
.../dc/impl/ScriptedDataConnectorTest.java | 5 ++-
.../dc/impl/StoredIDDataConnectorTest.java | 10 +++--
.../dc/ldap/impl/LDAPDataConnectorTest.java | 8 ++--
.../dc/rdbms/impl/RDBMSDataConnectorTest.java | 25 ++++++++----
.../impl/StorageServiceDataConnectorTest.java | 18 +++++----
.../tests/PluginDependencySupportTest.java | 2 +-
.../spring/MetadataDrivenConfigurationTest.java | 44 ++++++++++++----------
.../impl/testing/SAMLAttributeDataConnector.java | 5 ++-
.../attribute/resolver/testing/TestSources.java | 5 +++
29 files changed, 206 insertions(+), 93 deletions(-)
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/BeanConfigurationLookupStrategy.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/BeanConfigurationLookupStrategy.java
index 11e64611d..493e1da55 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/BeanConfigurationLookupStrategy.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/BeanConfigurationLookupStrategy.java
@@ -109,7 +109,9 @@ public class BeanConfigurationLookupStrategy<T> extends AbstractMetadataDrivenCo
final IdPAttributeValue value = values.get(0);
if (value instanceof StringAttributeValue strval) {
try {
- return applicationContext.getBean(strval.getValue(), propertyType);
+ final Class<T> pt = propertyType;
+ assert pt!=null;
+ return applicationContext.getBean(strval.getValue(), pt);
} catch (final BeansException e) {
LOG.error("Error locating appropriately typed bean named {}", strval.getValue(), e);
return null;
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/transcoding/AbstractAttributeTranscoder.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/transcoding/AbstractAttributeTranscoder.java
index bc19c7f52..5d1b22033 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/transcoding/AbstractAttributeTranscoder.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/transcoding/AbstractAttributeTranscoder.java
@@ -142,6 +142,7 @@ public abstract class AbstractAttributeTranscoder<T> extends AbstractInitializab
return false;
}
+ @SuppressWarnings("unchecked")
final Predicate<ProfileRequestContext> condition =
rule.get(AttributeTranscoderRegistry.PROP_CONDITION, Predicate.class);
if (condition != null) {
diff --git a/shib-attribute-impl/src/main/java/net/shibboleth/idp/attribute/transcoding/impl/AttributeTranscoderRegistryImpl.java b/shib-attribute-impl/src/main/java/net/shibboleth/idp/attribute/transcoding/impl/AttributeTranscoderRegistryImpl.java
index fe6b0970b..f4572b4af 100644
--- a/shib-attribute-impl/src/main/java/net/shibboleth/idp/attribute/transcoding/impl/AttributeTranscoderRegistryImpl.java
+++ b/shib-attribute-impl/src/main/java/net/shibboleth/idp/attribute/transcoding/impl/AttributeTranscoderRegistryImpl.java
@@ -228,7 +228,9 @@ public class AttributeTranscoderRegistryImpl extends AbstractIdentifiableInitial
log.trace("Using rules for effective type {}", effectiveType.getName());
- return CollectionSupport.copyToList(propertyCollections.get(effectiveType));
+ final Collection<TranscodingRule> result = propertyCollections.get(effectiveType);
+ assert result != null;
+ return CollectionSupport.copyToList(result);
}
/** {@inheritDoc} */
@@ -251,9 +253,13 @@ public class AttributeTranscoderRegistryImpl extends AbstractIdentifiableInitial
final String id = ((Function<? super T,String>) namingFunction).apply(from);
if (id != null) {
final Multimap<Class<?>,TranscodingRule> propertyCollections = transcodingRegistry.get(id);
-
- return propertyCollections != null ? CollectionSupport.copyToList(propertyCollections.get(effectiveType))
- : CollectionSupport.emptyList();
+
+ if (propertyCollections == null) {
+ return CollectionSupport.emptyList();
+ }
+ final Collection<TranscodingRule> result = propertyCollections.get(effectiveType);
+ assert result != null;
+ return CollectionSupport.copyToList(result);
}
log.warn("Object of type {} did not have a canonical name", from.getClass().getName());
diff --git a/shib-attribute-impl/src/test/java/net/shibboleth/idp/attribute/impl/JDBCPairwiseIdStoreTest.java b/shib-attribute-impl/src/test/java/net/shibboleth/idp/attribute/impl/JDBCPairwiseIdStoreTest.java
index 45d4da02e..527cebe83 100644
--- a/shib-attribute-impl/src/test/java/net/shibboleth/idp/attribute/impl/JDBCPairwiseIdStoreTest.java
+++ b/shib-attribute-impl/src/test/java/net/shibboleth/idp/attribute/impl/JDBCPairwiseIdStoreTest.java
@@ -83,7 +83,9 @@ public class JDBCPairwiseIdStoreTest {
Assert.assertEquals(store.getDataSource(), testSource);
Assert.assertEquals(store.getQueryTimeout(), Duration.ofSeconds(5));
- store.setQueryTimeout(Duration.ofMillis(1));
+ final Duration oneMs=Duration.ofMillis(1);
+ assert oneMs!=null;
+ store.setQueryTimeout(oneMs);
try {
store.getBySourceValue(new PairwiseId(), true);
@@ -102,7 +104,9 @@ public class JDBCPairwiseIdStoreTest {
}
store.initialize();
try {
- store.setQueryTimeout(Duration.ZERO);
+ final Duration zero = Duration.ZERO;
+ assert zero!=null;
+ store.setQueryTimeout(zero);
Assert.fail("work after initialize");
} catch (final UnmodifiableComponentException e) {
// OK
diff --git a/shib-attribute-impl/src/test/java/net/shibboleth/idp/attribute/transcoding/impl/AttributeTranscoderRegistryImplTest.java b/shib-attribute-impl/src/test/java/net/shibboleth/idp/attribute/transcoding/impl/AttributeTranscoderRegistryImplTest.java
index 2427090fb..d67144ea5 100644
--- a/shib-attribute-impl/src/test/java/net/shibboleth/idp/attribute/transcoding/impl/AttributeTranscoderRegistryImplTest.java
+++ b/shib-attribute-impl/src/test/java/net/shibboleth/idp/attribute/transcoding/impl/AttributeTranscoderRegistryImplTest.java
@@ -153,10 +153,10 @@ public class AttributeTranscoderRegistryImplTest {
final Pair<?,?> p = new Pair<>("ban", "value");
final Collection<TranscodingRule> rulesets = registry.getTranscodingRules(p);
- assertEquals(rulesets.size(), 1);
+ assert rulesets != null && rulesets.size() == 1;
final TranscodingRule ruleset = rulesets.iterator().next();
-
+ assert ruleset!=null;
final AttributeTranscoder<Pair<?,?>> t = TranscoderSupport.getTranscoder(ruleset);
assertNull(t.decode(null, p, ruleset));
}
@@ -167,6 +167,7 @@ public class AttributeTranscoderRegistryImplTest {
final List<Pair<?,?>> pairs = new ArrayList<>();
for (final TranscodingRule ruleset : registry.getTranscodingRules(foo, Pair.class)) {
+ assert ruleset!=null;
final AttributeTranscoder<Pair> t = TranscoderSupport.getTranscoder(ruleset);
final Pair p = t.encode(null, foo, Pair.class, ruleset);
if (p != null) {
@@ -190,6 +191,7 @@ public class AttributeTranscoderRegistryImplTest {
final List<IdPAttribute> attributes = new ArrayList<>();
for (final TranscodingRule ruleset : registry.getTranscodingRules(bar)) {
+ assert ruleset!=null;
final AttributeTranscoder<Pair<?,?>> t = TranscoderSupport.getTranscoder(ruleset);
attributes.add(t.decode(null, bar, ruleset));
}
@@ -208,6 +210,7 @@ public class AttributeTranscoderRegistryImplTest {
final List<IdPAttribute> attributes = new ArrayList<>();
for (final TranscodingRule ruleset : registry.getTranscodingRules(baz)) {
+ assert ruleset!=null;
final AttributeTranscoder<Pair<?,?>> t = TranscoderSupport.getTranscoder(ruleset);
attributes.add(t.decode(null, baz, ruleset));
}
@@ -228,7 +231,9 @@ public class AttributeTranscoderRegistryImplTest {
final List<Pair<?,?>> pairs = new ArrayList<>();
for (final TranscodingRule ruleset : registry.getTranscodingRules(foo, Pair.class)) {
+ assert ruleset!=null;
final AttributeTranscoder<Pair> t = TranscoderSupport.getTranscoder(ruleset);
+ assert ruleset!=null;
final Pair p = t.encode(null, foo, Pair.class, ruleset);
if (p != null) {
pairs.add(p);
@@ -251,6 +256,7 @@ public class AttributeTranscoderRegistryImplTest {
final List<MyPair> pairs = new ArrayList<>();
for (final TranscodingRule ruleset : registry.getTranscodingRules(foo, MyPair.class)) {
+ assert ruleset!=null;
final AttributeTranscoder<MyPair> t = TranscoderSupport.getTranscoder(ruleset);
final MyPair p = t.encode(null, foo, MyPair.class, ruleset);
if (p != null) {
@@ -274,6 +280,7 @@ public class AttributeTranscoderRegistryImplTest {
final List<IdPAttribute> attributes = new ArrayList<>();
for (final TranscodingRule ruleset : registry.getTranscodingRules(bar)) {
+ assert ruleset!=null;
final AttributeTranscoder<Pair<?,?>> t = TranscoderSupport.getTranscoder(ruleset);
attributes.add(t.decode(null, bar, ruleset));
}
@@ -291,6 +298,7 @@ public class AttributeTranscoderRegistryImplTest {
final List<IdPAttribute> attributes = new ArrayList<>();
for (final TranscodingRule ruleset : registry.getTranscodingRules(baz)) {
+ assert ruleset!=null;
final AttributeTranscoder<Pair<?,?>> t = TranscoderSupport.getTranscoder(ruleset);
attributes.add(t.decode(null, baz, ruleset));
}
@@ -311,6 +319,7 @@ public class AttributeTranscoderRegistryImplTest {
final List<Pair<?,?>> pairs = new ArrayList<>();
for (final TranscodingRule ruleset : registry.getTranscodingRules(foo, Pair.class)) {
+ assert ruleset!=null;
final AttributeTranscoder<Pair> t = TranscoderSupport.getTranscoder(ruleset);
final Pair p = t.encode(null, foo, Pair.class, ruleset);
if (p != null) {
@@ -334,6 +343,7 @@ public class AttributeTranscoderRegistryImplTest {
final List<IdPAttribute> attributes = new ArrayList<>();
for (final TranscodingRule ruleset : registry.getTranscodingRules(bar)) {
+ assert ruleset!=null;
final AttributeTranscoder<Pair<?,?>> t = TranscoderSupport.getTranscoder(ruleset);
attributes.add(t.decode(null, bar, ruleset));
}
@@ -351,6 +361,7 @@ public class AttributeTranscoderRegistryImplTest {
final List<IdPAttribute> attributes = new ArrayList<>();
for (final TranscodingRule ruleset : registry.getTranscodingRules(baz)) {
+ assert ruleset!=null;
final AttributeTranscoder<Pair<?,?>> t = TranscoderSupport.getTranscoder(ruleset);
attributes.add(t.decode(null, baz, ruleset));
}
diff --git a/shib-attribute-impl/src/test/java/net/shibboleth/idp/attribute/transcoding/impl/PairTranscoder.java b/shib-attribute-impl/src/test/java/net/shibboleth/idp/attribute/transcoding/impl/PairTranscoder.java
index 03239b624..621a36ce4 100644
--- a/shib-attribute-impl/src/test/java/net/shibboleth/idp/attribute/transcoding/impl/PairTranscoder.java
+++ b/shib-attribute-impl/src/test/java/net/shibboleth/idp/attribute/transcoding/impl/PairTranscoder.java
@@ -68,9 +68,13 @@ public class PairTranscoder extends AbstractAttributeTranscoder<Pair> {
try {
if (attribute.getValues().isEmpty() || !canEncodeValue(attribute, attribute.getValues().get(0))) {
- return to.getDeclaredConstructor(Object.class, Object.class).newInstance(name, null);
+ final Pair result = to.getDeclaredConstructor(Object.class, Object.class).newInstance(name, null);
+ assert result != null;
+ return result;
}
- return to.getDeclaredConstructor(Object.class, Object.class).newInstance(name, attribute.getValues().get(0).getNativeValue());
+ final Pair result = to.getDeclaredConstructor(Object.class, Object.class).newInstance(name, attribute.getValues().get(0).getNativeValue());
+ assert result != null;
+ return result;
} catch (final InstantiationException | IllegalAccessException | IllegalArgumentException
| InvocationTargetException | NoSuchMethodException | SecurityException e) {
throw new AttributeEncodingException(e);
diff --git a/shib-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/dc/rdbms/FormatExecutableStatementBuilder.java b/shib-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/dc/rdbms/FormatExecutableStatementBuilder.java
index c3808fe60..0203cdcec 100644
--- a/shib-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/dc/rdbms/FormatExecutableStatementBuilder.java
+++ b/shib-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/dc/rdbms/FormatExecutableStatementBuilder.java
@@ -81,7 +81,9 @@ public class FormatExecutableStatementBuilder extends AbstractExecutableStatemen
args.add(null);
}
}
- return String.format(sqlQuery, args.toArray());
+ final String result = String.format(sqlQuery, args.toArray());
+ assert result != null;
+ return result;
}
}
\ No newline at end of file
diff --git a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/DateTimeAttributeDefinition.java b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/DateTimeAttributeDefinition.java
index 842a95dc3..29d0d1fd6 100644
--- a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/DateTimeAttributeDefinition.java
+++ b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/DateTimeAttributeDefinition.java
@@ -159,7 +159,7 @@ public class DateTimeAttributeDefinition extends AbstractAttributeDefinition {
ensureId());
final List<? extends IdPAttributeValue> converted = values.stream()
- .map(v -> convert(v))
+ .map(v -> {assert v != null; return convert(v);})
.filter(Predicates.notNull())
.collect(CollectionSupport.nonnullCollector(Collectors.toUnmodifiableList()))
.get();
@@ -167,8 +167,9 @@ public class DateTimeAttributeDefinition extends AbstractAttributeDefinition {
if (!ignoreConversionErrors && converted.size() != values.size()) {
throw new ResolutionException("Unable to convert all inputs to date/time values.");
}
-
- result.setValues((List<IdPAttributeValue>) converted);
+ @SuppressWarnings("unchecked")
+ final List<IdPAttributeValue> vals = (List<IdPAttributeValue>)converted;
+ result.setValues(vals);
return result;
}
@@ -209,7 +210,9 @@ public class DateTimeAttributeDefinition extends AbstractAttributeDefinition {
try {
assert formatter != null;
- return new DateTimeAttributeValue(formatter.parse(stringValue, Instant::from));
+ final Instant parsedValue = formatter.parse(stringValue, Instant::from);
+ assert parsedValue != null;
+ return new DateTimeAttributeValue(parsedValue);
} catch (final DateTimeException e) {
log.info("{} Error converting input value '{}' into Instant", getLogPrefix(), stringValue, e);
return null;
diff --git a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/http/impl/AbstractHTTPSearchBuilder.java b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/http/impl/AbstractHTTPSearchBuilder.java
index 8a786cc81..7dbc4a42f 100644
--- a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/http/impl/AbstractHTTPSearchBuilder.java
+++ b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/http/impl/AbstractHTTPSearchBuilder.java
@@ -168,7 +168,9 @@ public abstract class AbstractHTTPSearchBuilder extends AbstractInitializableCom
HttpClientSecuritySupport.marshalSecurityParameters(clientContext, securityParameters, true);
HttpClientSecuritySupport.addDefaultTLSTrustEngineCriteria(clientContext, request);
final Map<String,IdPAttribute> results = client.execute(request, clientContext, mappingStrategy);
- HttpClientSecuritySupport.checkTLSCredentialEvaluated(clientContext, request.getScheme());
+ final String scheme = request.getScheme();
+ assert scheme != null;
+ HttpClientSecuritySupport.checkTLSCredentialEvaluated(clientContext, scheme);
assert results != null;
return results;
}
diff --git a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/http/impl/HTTPDataConnector.java b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/http/impl/HTTPDataConnector.java
index 1696117f5..5233f7323 100644
--- a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/http/impl/HTTPDataConnector.java
+++ b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/http/impl/HTTPDataConnector.java
@@ -108,8 +108,11 @@ public class HTTPDataConnector extends AbstractSearchDataConnector<HTTPSearch,HT
@Nonnull final HTTPSearch executable) throws ResolutionException {
try {
- return getMappingStrategy().map(
- executable.execute(httpClient, httpClientSecurityParameters, getMappingStrategy()));
+ final HTTPResponseMappingStrategy strategy = getMappingStrategy();
+ final HttpClient localClient = httpClient;
+ assert strategy!=null && localClient!=null;
+ return strategy.map(
+ executable.execute(localClient, httpClientSecurityParameters, strategy));
} catch (final IOException e) {
throw new ResolutionException(getLogPrefix() + " HTTP request failed", e);
}
diff --git a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/http/impl/TemplatedBodyBuilder.java b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/http/impl/TemplatedBodyBuilder.java
index 8c8b44a73..2b666cf84 100644
--- a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/http/impl/TemplatedBodyBuilder.java
+++ b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/http/impl/TemplatedBodyBuilder.java
@@ -389,7 +389,8 @@ public class TemplatedBodyBuilder extends AbstractHTTPSearchBuilder {
@Nonnull final AttributeResolutionContext resolutionContext,
@Nonnull final Map<String, List<IdPAttributeValue>> dependencyAttributes) {
- if (cacheKeyTemplate == null) {
+ final Template ckt = cacheKeyTemplate;
+ if (ckt== null) {
return null;
}
@@ -410,8 +411,7 @@ public class TemplatedBodyBuilder extends AbstractHTTPSearchBuilder {
context.put(entry.getKey(), values);
}
}
-
- return merge(cacheKeyTemplate, context);
+ return merge(ckt, context);
}
}
diff --git a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/storage/impl/ScriptedStorageMappingStrategy.java b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/storage/impl/ScriptedStorageMappingStrategy.java
index 1ffacea7a..4df20147e 100644
--- a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/storage/impl/ScriptedStorageMappingStrategy.java
+++ b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/storage/impl/ScriptedStorageMappingStrategy.java
@@ -41,6 +41,7 @@ import net.shibboleth.idp.attribute.resolver.dc.storage.StorageMappingStrategy;
import net.shibboleth.shared.annotation.constraint.NotEmpty;
import net.shibboleth.shared.annotation.constraint.NotLive;
import net.shibboleth.shared.annotation.constraint.Unmodifiable;
+import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.primitive.LoggerFactory;
import net.shibboleth.shared.resource.Resource;
import net.shibboleth.shared.scripting.AbstractScriptEvaluator;
@@ -80,7 +81,9 @@ public final class ScriptedStorageMappingStrategy extends AbstractScriptEvaluato
try {
final Object map = evaluate(results);
if (map instanceof Map) {
- return (Map<String, IdPAttribute>) map;
+ @SuppressWarnings("unchecked")
+ final Map<String, IdPAttribute> mapApMap = (Map<String, IdPAttribute>) map;
+ return mapApMap;
}
throw new ResolutionException(getLogPrefix() + "Script finalization did not return a map");
} catch (final RuntimeException e) {
@@ -170,8 +173,10 @@ public final class ScriptedStorageMappingStrategy extends AbstractScriptEvaluato
final EvaluableScript script = new EvaluableScript();
script.setEngineName(engineName);
script.setScript(is);
- script.initializeWithScriptException();
+ script.initialize();
return new ScriptedStorageMappingStrategy(script);
+ } catch (final ComponentInitializationException e) {
+ throw new ScriptException(e);
}
}
@@ -201,7 +206,11 @@ public final class ScriptedStorageMappingStrategy extends AbstractScriptEvaluato
final EvaluableScript script = new EvaluableScript();
script.setEngineName(engineName);
script.setScript(scriptSource);
- script.initializeWithScriptException();
+ try {
+ script.initialize();
+ } catch (final ComponentInitializationException e) {
+ throw new ScriptException(e);
+ }
return new ScriptedStorageMappingStrategy(script);
}
diff --git a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/DateTimeAttributeDefinitionTest.java b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/DateTimeAttributeDefinitionTest.java
index 24fb3a662..3ba32b3f2 100644
--- a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/DateTimeAttributeDefinitionTest.java
+++ b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/DateTimeAttributeDefinitionTest.java
@@ -177,7 +177,9 @@ public class DateTimeAttributeDefinitionTest {
assertEquals(values.size(), 2);
assertTrue(values.contains(new DateTimeAttributeValue(now)));
- assertTrue(values.contains(new DateTimeAttributeValue(Instant.ofEpochSecond(Long.valueOf(STRING_SECS)))));
+ final Instant then = Instant.ofEpochSecond(Long.valueOf(STRING_SECS));
+ assert then != null;
+ assertTrue(values.contains(new DateTimeAttributeValue(then)));
}
/**
@@ -217,7 +219,9 @@ public class DateTimeAttributeDefinitionTest {
final Collection<IdPAttributeValue> values = context.getResolvedIdPAttributes().get(TEST_ATTRIBUTE_NAME).getValues();
assertEquals(values.size(), 1);
- assertTrue(values.contains(new DateTimeAttributeValue(Instant.ofEpochMilli(Long.valueOf(STRING_MSECS)))));
+ final Instant then = Instant.ofEpochMilli(Long.valueOf(STRING_MSECS));
+ assert then != null;
+ assertTrue(values.contains(new DateTimeAttributeValue(then)));
}
/**
@@ -257,7 +261,9 @@ public class DateTimeAttributeDefinitionTest {
final Collection<IdPAttributeValue> values = context.getResolvedIdPAttributes().get(TEST_ATTRIBUTE_NAME).getValues();
assertEquals(values.size(), 1);
- assertTrue(values.contains(new DateTimeAttributeValue(Instant.ofEpochMilli(Long.valueOf(STRING_MSECS)))));
+ final Instant then = Instant.ofEpochMilli(Long.valueOf(STRING_MSECS));
+ assert then != null;
+ assertTrue(values.contains(new DateTimeAttributeValue(then)));
}
/**
diff --git a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/DecryptedAttributeTest.java b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/DecryptedAttributeTest.java
index d4a4f7ace..30c52882e 100644
--- a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/DecryptedAttributeTest.java
+++ b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/DecryptedAttributeTest.java
@@ -46,6 +46,7 @@ import net.shibboleth.idp.attribute.resolver.impl.AttributeResolverImpl;
import net.shibboleth.idp.attribute.resolver.impl.AttributeResolverImplTest;
import net.shibboleth.idp.attribute.resolver.testing.ResolverTestSupport;
import net.shibboleth.idp.attribute.resolver.testing.TestSources;
+import net.shibboleth.shared.annotation.constraint.NonnullBeforeTest;
import net.shibboleth.shared.annotation.constraint.NotEmpty;
import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.collection.LazySet;
@@ -62,7 +63,7 @@ public class DecryptedAttributeTest {
@Nonnull @NotEmpty private static final String TEST_ATTRIBUTE_NAME = "decrypted";
- private DataSealer dataSealer;
+ @NonnullBeforeTest private DataSealer dataSealer;
@BeforeClass public void setUp() throws ComponentInitializationException {
ClassPathResource resource =
@@ -112,7 +113,7 @@ public class DecryptedAttributeTest {
} catch (final ComponentInitializationException e) {
}
-
+ assert dataSealer != null;
decrypted.setDataSealer(dataSealer);
decrypted.initialize();
@@ -130,6 +131,7 @@ public class DecryptedAttributeTest {
* @throws ComponentInitializationException if initialization fails (which it shouldn't).
* @throws DataSealerException if encryption fails
*/
+ @SuppressWarnings("null")
@Test public void dataConnector() throws ComponentInitializationException, DataSealerException {
// Set the dependency on the data connector
@@ -140,6 +142,7 @@ public class DecryptedAttributeTest {
dependencySet.add(TestSources.makeDataConnectorDependency(TestSources.STATIC_CONNECTOR_NAME,
TestSources.DEPENDS_ON_ATTRIBUTE_NAME_CONNECTOR));
decrypted.setDataConnectorDependencies(dependencySet);
+ assert dataSealer != null;
decrypted.setDataSealer(dataSealer);
decrypted.initialize();
@@ -190,6 +193,7 @@ public class DecryptedAttributeTest {
final Set<ResolverAttributeDefinitionDependency> dependencySet = new LazySet<>();
dependencySet.add(TestSources.makeAttributeDefinitionDependency(TestSources.DEPENDS_ON_ATTRIBUTE_NAME_ATTR));
decrypted.setAttributeDependencies(dependencySet);
+ assert dataSealer != null;
decrypted.setDataSealer(dataSealer);
decrypted.initialize();
@@ -240,6 +244,7 @@ public class DecryptedAttributeTest {
final DecryptedAttributeDefinition decrypted = new DecryptedAttributeDefinition();
decrypted.setId(TEST_ATTRIBUTE_NAME);
decrypted.setDataConnectorDependencies(CollectionSupport.singleton(depend));
+ assert dataSealer != null;
decrypted.setDataSealer(dataSealer);
decrypted.initialize();
diff --git a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/LogicTest.java b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/LogicTest.java
index cf4064cbb..2b6832313 100644
--- a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/LogicTest.java
+++ b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/LogicTest.java
@@ -20,11 +20,10 @@ package net.shibboleth.idp.attribute.resolver.ad.impl;
import static org.testng.Assert.assertFalse;
import static org.testng.Assert.assertTrue;
-import java.util.Collections;
+import java.util.ArrayList;
import org.opensaml.profile.context.ProfileRequestContext;
import org.testng.annotations.Test;
-import org.testng.collections.Lists;
import net.shibboleth.idp.attribute.resolver.context.AttributeResolutionContext;
import net.shibboleth.idp.attribute.resolver.logic.AttributeIssuerIdPredicate;
@@ -39,7 +38,7 @@ import net.shibboleth.shared.collection.CollectionSupport;
public class LogicTest {
final private AttributeIssuerIdPredicate aiip = new AttributeIssuerIdPredicate(CollectionSupport.singleton("AII"));
- final private AttributePrincipalPredicate app = new AttributePrincipalPredicate(Lists.newArrayList("AP", "Principal"));
+ final private AttributePrincipalPredicate app = new AttributePrincipalPredicate(new ArrayList<>(CollectionSupport.listOf("AP", "Principal")));
final private AttributeRecipientIdPredicate arip = new AttributeRecipientIdPredicate(CollectionSupport.singleton("ARI"));
diff --git a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/RegexAtributeTest.java b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/RegexAtributeTest.java
index 28bf6a743..4b801f309 100644
--- a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/RegexAtributeTest.java
+++ b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/RegexAtributeTest.java
@@ -157,7 +157,9 @@ public class RegexAtributeTest {
final RegexSplitAttributeDefinition attrDef = new RegexSplitAttributeDefinition();
attrDef.setId(TEST_ATTRIBUTE_NAME);
// regex where the first group doesn't match
- attrDef.setRegularExpression(Pattern.compile("([zZ]*)at1-(.+)or"));
+ final Pattern pat = Pattern.compile("([zZ]*)at1-(.+)or");
+ assert pat!=null;
+ attrDef.setRegularExpression(pat);
attrDef.setDataConnectorDependencies(dependencySet);
attrDef.initialize();
diff --git a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/ScopedAttributeTest.java b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/ScopedAttributeTest.java
index a4edba191..0c7d163cf 100644
--- a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/ScopedAttributeTest.java
+++ b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/ScopedAttributeTest.java
@@ -71,7 +71,7 @@ public class ScopedAttributeTest {
@Test public void scopes() throws ResolutionException, ComponentInitializationException {
// Set the dependency on the data connector
- final Set<ResolverDataConnectorDependency> dependencySet = Set.of(
+ final Set<ResolverDataConnectorDependency> dependencySet = CollectionSupport.setOf(
TestSources.makeDataConnectorDependency(TestSources.STATIC_CONNECTOR_NAME,
TestSources.DEPENDS_ON_ATTRIBUTE_NAME_CONNECTOR));
@@ -114,7 +114,7 @@ public class ScopedAttributeTest {
@Test public void scopeSource() throws ResolutionException, ComponentInitializationException {
// Set the dependency on the data connector
- final Set<ResolverDataConnectorDependency> dependencySet =Set.of(
+ final Set<ResolverDataConnectorDependency> dependencySet = CollectionSupport.setOf(
TestSources.makeDataConnectorDependency(TestSources.STATIC_CONNECTOR_NAME,
TestSources.DEPENDS_ON_ATTRIBUTE_NAME_CONNECTOR));
@@ -122,7 +122,7 @@ public class ScopedAttributeTest {
scoped.setScopeSource("ScopeSource");
scoped.setId(TEST_ATTRIBUTE_NAME);
scoped.setDataConnectorDependencies(dependencySet);
- scoped.setAttributeDependencies(Set.of(TestSources.makeAttributeDefinitionDependency("ScopeSource")));
+ scoped.setAttributeDependencies(CollectionSupport.setOf(TestSources.makeAttributeDefinitionDependency("ScopeSource")));
scoped.initialize();
// And resolve
diff --git a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/ScriptedAttributeTest.java b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/ScriptedAttributeTest.java
index 2508dcd1b..d76da3f53 100644
--- a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/ScriptedAttributeTest.java
+++ b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/ScriptedAttributeTest.java
@@ -24,6 +24,7 @@ import static org.testng.Assert.assertTrue;
import static org.testng.Assert.fail;
import java.io.IOException;
+import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
@@ -79,14 +80,16 @@ public class ScriptedAttributeTest extends XMLObjectBaseTestCase {
private static Logger log = LoggerFactory.getLogger(ScriptedAttributeTest.class);
- private String fileNameToPath(final String fileName) {
+ @Nonnull private String fileNameToPath(final String fileName) {
return "/net/shibboleth/idp/attribute/resolver/impl/ad/" + fileName;
}
@Nonnull private EvaluableScript getScript(String fileName) throws ComponentInitializationException, IOException {
EvaluableScript es = new EvaluableScript ();
es.setEngineName(SCRIPT_LANGUAGE);
- es.setScript(getClass().getResourceAsStream(fileNameToPath(fileName)));
+ final InputStream is = getClass().getResourceAsStream(fileNameToPath(fileName));
+ assert is != null;
+ es.setScript(is);
es.initialize();
return es;
}
@@ -439,7 +442,7 @@ public class ScriptedAttributeTest extends XMLObjectBaseTestCase {
assertTrue(values.contains(new StringAttributeValue(TestSources.SP_ENTITY_ID)));
}
- @Nonnull protected IdPAttribute runExample(final String exampleScript, final String exampleData, final String attributeName)
+ @Nullable protected IdPAttribute runExampleNullable(final String exampleScript, final String exampleData, @Nonnull final String attributeName)
throws ScriptException, IOException, ComponentInitializationException {
final SAMLAttributeDataConnector connector = new SAMLAttributeDataConnector();
connector.setAttributesStrategy(new Locator(exampleData));
@@ -469,9 +472,15 @@ public class ScriptedAttributeTest extends XMLObjectBaseTestCase {
} catch (final ResolutionException e) {
fail("resolution failed", e);
}
-
return context.getResolvedIdPAttributes().get(attributeName);
-
+ }
+
+ @Nonnull protected IdPAttribute runExample(final String exampleScript, final String exampleData, @Nonnull final String attributeName)
+ throws ScriptException, IOException, ComponentInitializationException {
+ final IdPAttribute result = runExampleNullable(exampleScript, exampleData, attributeName);
+ assert result != null;
+ return result;
+
}
@Test public void examples() throws ScriptException, IOException, ComponentInitializationException {
@@ -512,12 +521,13 @@ public class ScriptedAttributeTest extends XMLObjectBaseTestCase {
assertTrue(set.contains(new StringAttributeValue("urn:mace:dir:entitlement:common-lib-terms")));
assertTrue(set.contains(new StringAttributeValue("LittleGreenMen")));
- attribute = runExample("example4.script", "example4.attribute.3.xml", "eduPersonEntitlement");
+ attribute = runExampleNullable("example4.script", "example4.attribute.3.xml", "eduPersonEntitlement");
assertNull(attribute);
+
}
- private static AttributeResolutionContext generateContext() {
+ @Nonnull private static AttributeResolutionContext generateContext() {
final AttributeResolutionContext ctx = TestSources.createResolutionContext(TestSources.PRINCIPAL_ID, TestSources.IDP_ENTITY_ID,
TestSources.SP_ENTITY_ID);
return ctx;
diff --git a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/mapped/impl/MappedAttributeTest.java b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/mapped/impl/MappedAttributeTest.java
index 865f8acc1..8a7351e14 100644
--- a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/mapped/impl/MappedAttributeTest.java
+++ b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/mapped/impl/MappedAttributeTest.java
@@ -25,6 +25,8 @@ import static org.testng.Assert.fail;
import java.util.Set;
+import javax.annotation.Nonnull;
+
import org.testng.annotations.Test;
import net.shibboleth.idp.attribute.ByteAttributeValue;
@@ -267,11 +269,12 @@ public class MappedAttributeTest {
assertFalse(result.getValues().isEmpty());
assertEquals(result.getValues().size(), ResolverTestSupport.EPA3_VALUES.length);
for (final String val : ResolverTestSupport.EPA3_VALUES) {
+ assert val != null;
assertTrue(result.getValues().contains(new StringAttributeValue(val)));
}
}
- protected ValueMap substringValueMapping(final String targetValue, final boolean caseInsensitive, final String returnValue) throws ComponentInitializationException {
+ @Nonnull protected ValueMap substringValueMapping(final String targetValue, final boolean caseInsensitive, @Nonnull final String returnValue) throws ComponentInitializationException {
final ValueMap retVal = new ValueMap();
retVal.setReturnValue(returnValue);
retVal.setSourceValues(CollectionSupport.singleton(SourceValueTest.newSourceValue(returnValue, caseInsensitive, true)));
diff --git a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/http/impl/HTTPDataConnectorTest.java b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/http/impl/HTTPDataConnectorTest.java
index 4bfc38fa8..732dcea5e 100644
--- a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/http/impl/HTTPDataConnectorTest.java
+++ b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/http/impl/HTTPDataConnectorTest.java
@@ -28,6 +28,7 @@ import java.security.cert.X509Certificate;
import java.util.Map;
import java.util.Set;
+import javax.annotation.Nonnull;
import javax.script.ScriptException;
import org.apache.hc.client5.http.socket.LayeredConnectionSocketFactory;
@@ -373,10 +374,16 @@ public class HTTPDataConnectorTest {
connector.resolve(context);
assertTrue(cache.size() == 0);
}
+
+ @Nonnull final static byte[] getCertArray(final String cert) throws IOException {
+ final InputStream certStream = FileBackedHTTPMetadataResolver.class.getResourceAsStream((SCRIPT_PATH + cert));
+ final byte certArray[] = ByteStreams.toByteArray(certStream);
+ assert certArray!=null;
+ return certArray;
+ }
public static TrustEngine<? super X509Credential> buildPKIXTrustEngine(String cert, String name, boolean nameCheckEnabled) throws URISyntaxException, CertificateException, IOException {
- final InputStream certStream = FileBackedHTTPMetadataResolver.class.getResourceAsStream((SCRIPT_PATH + cert));
- final X509Certificate rootCert = X509Support.decodeCertificate(ByteStreams.toByteArray(certStream));
+ final X509Certificate rootCert = X509Support.decodeCertificate(getCertArray(cert));
final PKIXValidationInformation info = new BasicPKIXValidationInformation(CollectionSupport.singletonList(rootCert), null, 5);
final Set<String> trustedNames = name != null ? CollectionSupport.singleton(name) : CollectionSupport.emptySet();
final StaticPKIXValidationInformationResolver resolver = new StaticPKIXValidationInformationResolver(CollectionSupport.singletonList(info), trustedNames);
@@ -386,9 +393,7 @@ public class HTTPDataConnectorTest {
}
public static TrustEngine<? super X509Credential> buildExplicitKeyTrustEngine(String cert) throws URISyntaxException, CertificateException, IOException {
-
- final InputStream certStream = FileBackedHTTPMetadataResolver.class.getResourceAsStream(SCRIPT_PATH + cert);
- final X509Certificate entityCert = X509Support.decodeCertificate(ByteStreams.toByteArray(certStream));
+ final X509Certificate entityCert = X509Support.decodeCertificate(getCertArray(cert));
assert entityCert != null;
final X509Credential entityCredential = new BasicX509Credential(entityCert);
return new ExplicitKeyTrustEngine(new StaticCredentialResolver(entityCredential));
diff --git a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/impl/ScriptedDataConnectorTest.java b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/impl/ScriptedDataConnectorTest.java
index 35c007aa3..ba7f347fc 100644
--- a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/impl/ScriptedDataConnectorTest.java
+++ b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/impl/ScriptedDataConnectorTest.java
@@ -20,6 +20,7 @@ package net.shibboleth.idp.attribute.resolver.dc.impl;
import static org.testng.Assert.assertEquals;
import java.io.IOException;
+import java.io.InputStream;
import java.util.Map;
import javax.annotation.Nonnull;
@@ -49,7 +50,9 @@ public class ScriptedDataConnectorTest {
final String name = "/net/shibboleth/idp/attribute/resolver/impl/dc/" + fileName;
final EvaluableScript es = new EvaluableScript();
es.setEngineName("javascript");
- es.setScript(getClass().getResourceAsStream(name));
+ final InputStream is = getClass().getResourceAsStream(name);
+ assert is != null;
+ es.setScript(is);
es.initialize();
return es;
}
diff --git a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/impl/StoredIDDataConnectorTest.java b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/impl/StoredIDDataConnectorTest.java
index aaf79a76e..9e91dc53e 100644
--- a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/impl/StoredIDDataConnectorTest.java
+++ b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/impl/StoredIDDataConnectorTest.java
@@ -24,6 +24,7 @@ import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
+import javax.annotation.Nonnull;
import javax.sql.DataSource;
import org.opensaml.core.testing.OpenSAMLInitBaseTestCase;
@@ -40,6 +41,7 @@ import net.shibboleth.idp.attribute.resolver.ResolutionException;
import net.shibboleth.idp.attribute.resolver.context.AttributeResolutionContext;
import net.shibboleth.idp.attribute.resolver.impl.AttributeResolverImpl;
import net.shibboleth.idp.attribute.resolver.testing.TestSources;
+import net.shibboleth.shared.annotation.constraint.NonnullBeforeTest;
import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.testing.DatabaseTestingSupport;
@@ -49,11 +51,11 @@ import net.shibboleth.shared.testing.DatabaseTestingSupport;
@SuppressWarnings("javadoc")
public class StoredIDDataConnectorTest extends OpenSAMLInitBaseTestCase {
- private static final String INIT_FILE = "/net/shibboleth/idp/attribute/resolver/impl/dc/StoredIdStore.sql";
+ @Nonnull private static final String INIT_FILE = "/net/shibboleth/idp/attribute/resolver/impl/dc/StoredIdStore.sql";
- private static final String DELETE_FILE = "/net/shibboleth/idp/attribute/resolver/impl/dc/DeleteStore.sql";
+ @Nonnull private static final String DELETE_FILE = "/net/shibboleth/idp/attribute/resolver/impl/dc/DeleteStore.sql";
- private DataSource testSource;
+ @NonnullBeforeTest private DataSource testSource;
@BeforeClass public void setupSource() throws SQLException, IOException {
@@ -61,6 +63,7 @@ public class StoredIDDataConnectorTest extends OpenSAMLInitBaseTestCase {
}
@AfterClass public void teardown() {
+ assert testSource!=null;
DatabaseTestingSupport.InitializeDataSource(DELETE_FILE, testSource);
}
@@ -71,6 +74,7 @@ public class StoredIDDataConnectorTest extends OpenSAMLInitBaseTestCase {
private AttributeResolverImpl constructResolver(final int values, final boolean noSalt) throws ComponentInitializationException {
final JDBCPairwiseIdStore store = new JDBCPairwiseIdStore();
+ assert testSource!=null;
store.setDataSource(testSource);
final PairwiseIdDataConnector connector = new PairwiseIdDataConnector();
diff --git a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/ldap/impl/LDAPDataConnectorTest.java b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/ldap/impl/LDAPDataConnectorTest.java
index bb1f025e7..981ba5b83 100644
--- a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/ldap/impl/LDAPDataConnectorTest.java
+++ b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/ldap/impl/LDAPDataConnectorTest.java
@@ -25,6 +25,8 @@ import java.util.List;
import java.util.Map;
import java.util.Properties;
+import javax.annotation.Nonnull;
+
import org.apache.velocity.runtime.RuntimeConstants;
import org.ldaptive.ConnectionFactory;
import org.ldaptive.DefaultConnectionFactory;
@@ -540,20 +542,20 @@ public class LDAPDataConnectorTest {
assertTrue(attrs.get("mail").getValues().contains(new StringAttributeValue(" philip.principal at shibboleth.net ")));
}
- public static ParameterizedExecutableSearchFilterBuilder newParameterizedExecutableSearchFilterBuilder(final String filter) throws ComponentInitializationException {
+ @Nonnull public static ParameterizedExecutableSearchFilterBuilder newParameterizedExecutableSearchFilterBuilder(@Nonnull final String filter) throws ComponentInitializationException {
final ParameterizedExecutableSearchFilterBuilder builder = new ParameterizedExecutableSearchFilterBuilder();
builder.setSearchFilter(filter);
builder.initialize();
return builder;
}
- public static ConnectionFactoryValidator newConnectionFactoryValidator(final ConnectionFactory connectionFactory, final boolean throwValidateError) throws ComponentInitializationException {
+ @Nonnull public static ConnectionFactoryValidator newConnectionFactoryValidator(final ConnectionFactory connectionFactory, final boolean throwValidateError) throws ComponentInitializationException {
final ConnectionFactoryValidator validator = new ConnectionFactoryValidator();
validator.setThrowValidateError(throwValidateError);
return validator;
}
- public static ConnectionFactoryValidator newConnectionFactoryValidator(final ConnectionFactory connectionFactory) throws ComponentInitializationException {
+ @Nonnull public static ConnectionFactoryValidator newConnectionFactoryValidator(final ConnectionFactory connectionFactory) throws ComponentInitializationException {
final ConnectionFactoryValidator validator = new ConnectionFactoryValidator();
return validator;
}
diff --git a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/rdbms/impl/RDBMSDataConnectorTest.java b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/rdbms/impl/RDBMSDataConnectorTest.java
index 10d511e42..7922d4d45 100644
--- a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/rdbms/impl/RDBMSDataConnectorTest.java
+++ b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/rdbms/impl/RDBMSDataConnectorTest.java
@@ -47,6 +47,7 @@ import net.shibboleth.idp.attribute.resolver.dc.rdbms.ResultMappingStrategy;
import net.shibboleth.idp.attribute.resolver.dc.rdbms.StringResultMappingStrategy;
import net.shibboleth.idp.attribute.resolver.dc.rdbms.TemplatedExecutableStatementBuilder;
import net.shibboleth.idp.attribute.resolver.testing.TestSources;
+import net.shibboleth.shared.annotation.constraint.NonnullBeforeTest;
import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.component.UnmodifiableComponentException;
@@ -70,7 +71,7 @@ public class RDBMSDataConnectorTest {
private static final String GROUP_QUERY = "SELECT name FROM groups WHERE userid='%s'";
- private DataSource datasource;
+ @NonnullBeforeTest private DataSource datasource;
/**
* Creates an HSQLDB database instance.
@@ -82,6 +83,14 @@ public class RDBMSDataConnectorTest {
datasource = DatabaseTestingSupport.GetMockDataSource(INIT_FILE, "RDBMSDataConnectorStore");
DatabaseTestingSupport.InitializeDataSourceFromFile(DATA_FILE, datasource);
}
+
+ /** Nonnull getter for {@link #datasource}.
+ * @return {@link #datasource}
+ */
+ @Nonnull private DataSource getDataSourceInTest() {
+ assert datasource!=null;
+ return datasource;
+ }
/**
* Creates a RDBMS data connector using the supplied builder and strategy. Sets defaults values if the parameters
@@ -91,11 +100,11 @@ public class RDBMSDataConnectorTest {
* @param strategy to map results
* @return rdbms data connector
*/
- protected RDBMSDataConnector createUserRdbmsDataConnector(final ExecutableSearchBuilder<ExecutableStatement> builder,
+ @Nonnull protected RDBMSDataConnector createUserRdbmsDataConnector(final ExecutableSearchBuilder<ExecutableStatement> builder,
final ResultMappingStrategy strategy) {
final RDBMSDataConnector connector = new RDBMSDataConnector();
connector.setId(TEST_CONNECTOR_NAME);
- connector.setDataSource(datasource);
+ connector.setDataSource(getDataSourceInTest());
connector.setExecutableSearchBuilder(builder == null ? newFormatExecutableStatementBuilder(USER_QUERY) : builder);
connector.setMappingStrategy(strategy == null ? new StringResultMappingStrategy() : strategy);
return connector;
@@ -109,11 +118,11 @@ public class RDBMSDataConnectorTest {
* @param strategy to map results
* @return rdbms data connector
*/
- protected RDBMSDataConnector createGroupRdbmsDataConnector(final ExecutableSearchBuilder<ExecutableStatement> builder,
+ @Nonnull protected RDBMSDataConnector createGroupRdbmsDataConnector(final ExecutableSearchBuilder<ExecutableStatement> builder,
final ResultMappingStrategy strategy) {
final RDBMSDataConnector connector = new RDBMSDataConnector();
connector.setId(TEST_CONNECTOR_NAME + "ForGroups");
- connector.setDataSource(datasource);
+ connector.setDataSource(getDataSourceInTest());
connector.setExecutableSearchBuilder(builder == null ? newFormatExecutableStatementBuilder(GROUP_QUERY) : builder);
connector.setMappingStrategy(strategy == null ? new StringResultMappingStrategy() : strategy);
return connector;
@@ -149,7 +158,7 @@ public class RDBMSDataConnectorTest {
// OK
}
- connector.setDataSource(datasource);
+ connector.setDataSource(getDataSourceInTest());
final StringResultMappingStrategy mappingStrategy = new StringResultMappingStrategy();
connector.setMappingStrategy(mappingStrategy);
@@ -377,13 +386,13 @@ public class RDBMSDataConnectorTest {
assertTrue(attrs.get("MAIL").getValues().contains(new StringAttributeValue(" phil.principal at shibboleth.net ")));
}
- static protected FormatExecutableStatementBuilder newFormatExecutableStatementBuilder(@Nonnull final String query) {
+ @Nonnull static protected FormatExecutableStatementBuilder newFormatExecutableStatementBuilder(@Nonnull final String query) {
final FormatExecutableStatementBuilder builder = new FormatExecutableStatementBuilder();
builder.setQuery(query);
return builder;
}
- static protected FormatExecutableStatementBuilder newFormatExecutableStatementBuilder(@Nonnull final String query, @Nonnull final Duration timeout) {
+ @Nonnull static protected FormatExecutableStatementBuilder newFormatExecutableStatementBuilder(@Nonnull final String query, @Nonnull final Duration timeout) {
final FormatExecutableStatementBuilder builder = new FormatExecutableStatementBuilder();
builder.setQuery(query);
builder.setQueryTimeout(timeout);
diff --git a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/storage/impl/StorageServiceDataConnectorTest.java b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/storage/impl/StorageServiceDataConnectorTest.java
index bea83117d..d851882d7 100644
--- a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/storage/impl/StorageServiceDataConnectorTest.java
+++ b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/storage/impl/StorageServiceDataConnectorTest.java
@@ -39,6 +39,7 @@ import net.shibboleth.idp.attribute.resolver.ResolutionException;
import net.shibboleth.idp.attribute.resolver.context.AttributeResolutionContext;
import net.shibboleth.idp.attribute.resolver.dc.impl.TestCache;
import net.shibboleth.idp.attribute.resolver.testing.TestSources;
+import net.shibboleth.shared.annotation.constraint.NonnullBeforeTest;
import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.spring.resource.ResourceHelper;
import net.shibboleth.shared.testing.VelocityEngine;
@@ -53,19 +54,21 @@ public class StorageServiceDataConnectorTest {
private static final String SCRIPT_PATH = "/net/shibboleth/idp/attribute/resolver/impl/dc/storage/";
- private MemoryStorageService storage;
- private StorageServiceDataConnector connector;
+ @NonnullBeforeTest private MemoryStorageService storage;
+ @NonnullBeforeTest private StorageServiceDataConnector connector;
@BeforeMethod public void setUp() throws Exception {
- storage = new MemoryStorageService();
+ final MemoryStorageService mss = storage = new MemoryStorageService();
storage.setId("ss");
- storage.setCleanupInterval(Duration.ZERO);
+ final Duration dZero = Duration.ZERO;
+ assert dZero!=null;
+ storage.setCleanupInterval(dZero);
storage.initialize();
connector = new StorageServiceDataConnector();
connector.setId(TEST_CONNECTOR_NAME);
- connector.setStorageService(storage);
+ connector.setStorageService(mss);
}
@AfterMethod public void tearDown() {
@@ -182,8 +185,9 @@ public class StorageServiceDataConnectorTest {
connector.setMappingStrategy(mapper);
connector.initialize();
-
- storage.create("foo", "bar", Files.streamToString(getClass().getResourceAsStream(SCRIPT_PATH + "test.json")), null);
+ final String testJson = Files.streamToString(getClass().getResourceAsStream(SCRIPT_PATH + "test.json"));
+ assert testJson!=null;
+ storage.create("foo", "bar", testJson, null);
final AttributeResolutionContext context =
TestSources.createResolutionContext(TestSources.PRINCIPAL_ID, TestSources.IDP_ENTITY_ID,
diff --git a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/tests/PluginDependencySupportTest.java b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/tests/PluginDependencySupportTest.java
index 1a3de1473..c7bcb62ee 100644
--- a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/tests/PluginDependencySupportTest.java
+++ b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/tests/PluginDependencySupportTest.java
@@ -35,7 +35,7 @@ import net.shibboleth.shared.collection.CollectionSupport;
import org.testng.Assert;
import org.testng.annotations.Test;
- at SuppressWarnings("javadoc")
+ at SuppressWarnings({"null", "javadoc"})
public class PluginDependencySupportTest {
@Test public void getMergedAttributeValueWithAttributeDefinitionDependencyOld() {
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/MetadataDrivenConfigurationTest.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/MetadataDrivenConfigurationTest.java
index 06ce39e66..4a200a4d7 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/MetadataDrivenConfigurationTest.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/MetadataDrivenConfigurationTest.java
@@ -49,6 +49,7 @@ import net.shibboleth.idp.attribute.config.SetConfigurationLookupStrategy;
import net.shibboleth.idp.attribute.config.StringConfigurationLookupStrategy;
import net.shibboleth.idp.attribute.transcoding.AttributeTranscoderRegistry;
import net.shibboleth.idp.saml.attribute.impl.AttributeMappingNodeProcessor;
+import net.shibboleth.shared.annotation.constraint.NonnullBeforeTest;
import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.logic.FunctionSupport;
@@ -63,15 +64,15 @@ import net.shibboleth.shared.spring.custom.SchemaTypeAwareXMLBeanDefinitionReade
@SuppressWarnings("javadoc")
public class MetadataDrivenConfigurationTest extends XMLObjectBaseTestCase {
- private EntityDescriptor entityDescriptor;
+ @NonnullBeforeTest private EntityDescriptor entityDescriptor;
- private ReloadableService<AttributeTranscoderRegistry> service;
+ @NonnullBeforeTest private ReloadableService<AttributeTranscoderRegistry> service;
- private AttributeMappingNodeProcessor processor;
+ @NonnullBeforeTest private AttributeMappingNodeProcessor processor;
private GenericApplicationContext pendingTeardownContext;
- private ProfileRequestContext prc;
+ @NonnullBeforeTest private ProfileRequestContext prc;
@AfterClass public void tearDownTestContext() {
if (null != pendingTeardownContext ) {
@@ -101,6 +102,16 @@ public class MetadataDrivenConfigurationTest extends XMLObjectBaseTestCase {
entityDescriptor = null;
prc = null;
}
+
+ @Nonnull private EntityDescriptor getEntityDescriptorInTest() {
+ assert entityDescriptor!=null;
+ return entityDescriptor;
+ }
+
+ @Nonnull private AttributeMappingNodeProcessor getProcessorInTest() {
+ assert processor!=null;
+ return processor;
+ }
@Nonnull private ReloadableService<AttributeTranscoderRegistry> getService() {
final GenericApplicationContext context = new GenericApplicationContext();
@@ -121,7 +132,9 @@ public class MetadataDrivenConfigurationTest extends XMLObjectBaseTestCase {
"/net/shibboleth/idp/saml/attribute/impl/service.xml");
context.refresh();
- return context.getBean(ReloadableService.class);
+ @SuppressWarnings("unchecked")
+ final ReloadableService<AttributeTranscoderRegistry> result = context.getBean(ReloadableService.class);
+ return result;
}
@Test public void testBooleanProfileTag() throws ComponentInitializationException, FilterException {
@@ -138,8 +151,7 @@ public class MetadataDrivenConfigurationTest extends XMLObjectBaseTestCase {
// Unmapped.
Assert.assertEquals(fn.apply(prc), true);
- assert processor != null;
- processor.process(entityDescriptor);
+ getProcessorInTest().process(getEntityDescriptorInTest());
// Mapped.
Assert.assertEquals(fn.apply(prc), true);
@@ -160,8 +172,7 @@ public class MetadataDrivenConfigurationTest extends XMLObjectBaseTestCase {
// Unmapped.
Assert.assertEquals(fn.apply(prc), true);
- assert processor != null;
- processor.process(entityDescriptor);
+ getProcessorInTest().process(getEntityDescriptorInTest());
// Mapped.
Assert.assertEquals(fn.apply(prc), true);
@@ -184,8 +195,7 @@ public class MetadataDrivenConfigurationTest extends XMLObjectBaseTestCase {
DeprecationSupport.clearWarningState();
- assert processor != null;
- processor.process(entityDescriptor);
+ getProcessorInTest().process(getEntityDescriptorInTest());
// Mapped.
Assert.assertEquals(fn.apply(prc), true);
@@ -205,8 +215,7 @@ public class MetadataDrivenConfigurationTest extends XMLObjectBaseTestCase {
// Unmapped.
Assert.assertEquals(fn.apply(prc), "foo");
- assert processor != null;
- processor.process(entityDescriptor);
+ getProcessorInTest().process(getEntityDescriptorInTest());
// Mapped.
Assert.assertEquals(fn.apply(prc), "foo");
@@ -226,8 +235,7 @@ public class MetadataDrivenConfigurationTest extends XMLObjectBaseTestCase {
// Unmapped.
Assert.assertEquals(fn.apply(prc), 42);
- assert processor != null;
- processor.process(entityDescriptor);
+ getProcessorInTest().process(getEntityDescriptorInTest());
// Mapped.
Assert.assertEquals(fn.apply(prc), 42);
@@ -248,8 +256,7 @@ public class MetadataDrivenConfigurationTest extends XMLObjectBaseTestCase {
// Unmapped.
Assert.assertEquals(fn.apply(prc), CollectionSupport.listOf("foo", "bar"));
- assert processor != null;
- processor.process(entityDescriptor);
+ getProcessorInTest().process(getEntityDescriptorInTest());
// Mapped.
Assert.assertEquals(fn.apply(prc), CollectionSupport.listOf("foo", "bar"));
@@ -270,8 +277,7 @@ public class MetadataDrivenConfigurationTest extends XMLObjectBaseTestCase {
// Unmapped.
Assert.assertEquals(fn.apply(prc), CollectionSupport.setOf("foo", "bar"));
- assert processor != null;
- processor.process(entityDescriptor);
+ getProcessorInTest().process(getEntityDescriptorInTest());
// Mapped.
Assert.assertEquals(fn.apply(prc), CollectionSupport.setOf("foo", "bar"));
diff --git a/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/resolver/dc/impl/testing/SAMLAttributeDataConnector.java b/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/resolver/dc/impl/testing/SAMLAttributeDataConnector.java
index 0ee8cc712..bd293ebe8 100644
--- a/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/resolver/dc/impl/testing/SAMLAttributeDataConnector.java
+++ b/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/resolver/dc/impl/testing/SAMLAttributeDataConnector.java
@@ -124,7 +124,10 @@ public class SAMLAttributeDataConnector extends AbstractDataConnector {
if (separator < 0) {
return new StringAttributeValue(value);
}
- return new ScopedStringAttributeValue(value.substring(0, separator), value.substring(separator + 1));
+ final String subString1 = value.substring(0, separator);
+ final String subString2 = value.substring(separator + 1);
+ assert subString1!=null && subString2!=null;
+ return new ScopedStringAttributeValue(subString1, subString2);
}
/**
diff --git a/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/resolver/testing/TestSources.java b/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/resolver/testing/TestSources.java
index b03c9d9fc..de4d8e669 100644
--- a/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/resolver/testing/TestSources.java
+++ b/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/resolver/testing/TestSources.java
@@ -67,6 +67,7 @@ public final class TestSources {
@Nonnull @NotEmpty public static final String[] SECOND_ATTRIBUTE_VALUE_STRINGS = {"at2-Val1", "at2-Val2"};
/** Some test attributes. */
+ @SuppressWarnings("null")
@Nonnull public static final StringAttributeValue[] SECOND_ATTRIBUTE_VALUE_RESULTS = {
new StringAttributeValue(SECOND_ATTRIBUTE_VALUE_STRINGS[0]),
new StringAttributeValue(SECOND_ATTRIBUTE_VALUE_STRINGS[0]),};
@@ -96,6 +97,7 @@ public final class TestSources {
@Nonnull @NotEmpty public static final String CONNECTOR_ATTRIBUTE_VALUE_REGEXP = "at1-(.+)or";
/** Regexp. for CONNECTOR_ATTRIBUTE_VALUE (for map and regexp testing). */
+ @SuppressWarnings("null")
@Nonnull public static final Pattern CONNECTOR_ATTRIBUTE_VALUE_REGEXP_PATTERN =
Pattern.compile(CONNECTOR_ATTRIBUTE_VALUE_REGEXP);
@@ -149,6 +151,7 @@ public final class TestSources {
* @return The connector
* @throws ComponentInitializationException if we cannot initialized (unlikely)
*/
+ @SuppressWarnings("null")
@Nonnull public static DataConnector populatedStaticConnector() throws ComponentInitializationException {
List<IdPAttribute> attributeSet = new ArrayList<>(2);
@@ -301,6 +304,7 @@ public final class TestSources {
@Nonnull final AttributeResolutionContext resolutionContext,
@Nonnull final AttributeResolverWorkContext workContext) throws ResolutionException {
checkComponentActive();
+ assert value!=null;
return value;
}
}
@@ -357,6 +361,7 @@ public final class TestSources {
@Nonnull final AttributeResolutionContext resolutionContext,
@Nonnull final AttributeResolverWorkContext workContext) throws ResolutionException {
checkComponentActive();
+ assert attributes!=null;
return attributes;
}
}
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list