[java-shib-attribute] 01/04: JSSH-27 Implement an ensureId method to help with nullability annotation
Rod Widdowson
rdw at steadingsoftware.com
Sat Apr 29 10:36:38 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=b43bd4e9891c14449e060055b4aae18116a65d4d
commit b43bd4e9891c14449e060055b4aae18116a65d4d
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Fri Apr 28 17:00:10 2023 +0100
JSSH-27 Implement an ensureId method to help with nullability annotation
https://shibboleth.atlassian.net/browse/JSSH-27
Use the ensureId where appropriate.
---
.../idp/attribute/filter/impl/AttributeFilterImpl.java | 4 ++--
.../attribute/filter/impl/AttributeFilterImplTest.java | 2 +-
.../attribute/filter/tests/AttributeFilterPolicyTest.java | 9 +++++----
.../spring/impl/AttributeFilterServiceStrategy.java | 2 +-
.../idp/attribute/filter/spring/basic/AndTest.java | 2 +-
.../spring/saml/AttributeInMetadataRuleParserTest.java | 4 ++--
.../impl/AttributeRegistryServiceStrategy.java | 2 +-
.../attribute/resolver/AbstractAttributeDefinition.java | 4 +++-
.../idp/attribute/resolver/AbstractDataConnector.java | 1 +
.../attribute/resolver/ResolvedAttributeDefinition.java | 6 ++++--
.../idp/attribute/resolver/ResolvedDataConnector.java | 6 ++++--
.../resolver/AbstractAttributeDefinitionTest.java | 2 +-
.../ad/impl/ContextDerivedAttributeDefinition.java | 2 +-
.../resolver/ad/impl/DecryptedAttributeDefinition.java | 2 +-
.../resolver/ad/impl/PrescopedAttributeDefinition.java | 2 +-
.../ad/impl/PrincipalNameAttributeDefinition.java | 2 +-
.../resolver/ad/impl/RegexSplitAttributeDefinition.java | 2 +-
.../resolver/ad/impl/ScopedAttributeDefinition.java | 2 +-
.../resolver/ad/impl/ScriptedAttributeDefinition.java | 7 ++++---
.../resolver/ad/impl/SimpleAttributeDefinition.java | 4 ++--
.../resolver/ad/impl/TemplateAttributeDefinition.java | 4 ++--
.../ad/mapped/impl/MappedAttributeDefinition.java | 6 +++---
.../resolver/dc/impl/PairwiseIdDataConnector.java | 8 +++++---
.../resolver/dc/rdbms/impl/RDBMSDataConnector.java | 15 +++------------
.../attribute/resolver/impl/AttributeResolverImpl.java | 5 +++--
.../resolver/impl/AttributeResolverImplTest.java | 2 +-
.../spring/impl/AttributeResolverServiceStrategy.java | 4 ++--
.../spring/dc/ldap/impl/LDAPDataConnectorParserTest.java | 2 +-
.../dc/rdbms/impl/RDBMSDataConnectorParserTest.java | 2 +-
29 files changed, 59 insertions(+), 56 deletions(-)
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/impl/AttributeFilterImpl.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/impl/AttributeFilterImpl.java
index fa1c0f8db..970462dbe 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/impl/AttributeFilterImpl.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/impl/AttributeFilterImpl.java
@@ -227,7 +227,7 @@ public class AttributeFilterImpl extends AbstractIdentifiableInitializableCompon
private boolean startTimer(@Nonnull final AttributeFilterContext filterContext) {
final MetricContext timerCtx = metricContextLookupStrategy.apply(filterContext);
if (timerCtx != null) {
- timerCtx.start(getId());
+ timerCtx.start(ensureId());
return true;
}
return false;
@@ -241,7 +241,7 @@ public class AttributeFilterImpl extends AbstractIdentifiableInitializableCompon
private void stopTimer(@Nonnull final AttributeFilterContext filterContext) {
final MetricContext timerCtx = metricContextLookupStrategy.apply(filterContext);
if (timerCtx != null) {
- timerCtx.stop(getId());
+ timerCtx.stop(ensureId());
}
}
diff --git a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/impl/AttributeFilterImplTest.java b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/impl/AttributeFilterImplTest.java
index 7eaa644d0..4b711535b 100644
--- a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/impl/AttributeFilterImplTest.java
+++ b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/impl/AttributeFilterImplTest.java
@@ -100,7 +100,7 @@ public class AttributeFilterImplTest {
Assert.assertEquals(filter.getFilterPolicies().size(), 2);
List<AttributeFilterPolicy> contents = filter.getFilterPolicies();
Assert.assertEquals(contents.get(0).getId(), "policy1");
- Assert.assertEquals(contents.get(1).getId(), "policy2");
+ Assert.assertEquals(contents.get(1).ensureId(), "policy2");
try {
filter.getFilterPolicies().add(policy1);
diff --git a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/tests/AttributeFilterPolicyTest.java b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/tests/AttributeFilterPolicyTest.java
index b3169a76f..fe4b76654 100644
--- a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/tests/AttributeFilterPolicyTest.java
+++ b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/tests/AttributeFilterPolicyTest.java
@@ -31,6 +31,7 @@ import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
import net.shibboleth.idp.attribute.filter.context.AttributeFilterWorkContext;
import net.shibboleth.idp.attribute.filter.testing.MockMatcher;
import net.shibboleth.idp.attribute.filter.testing.MockPolicyRequirementRule;
+import net.shibboleth.shared.annotation.constraint.NonnullBeforeTest;
import net.shibboleth.shared.annotation.constraint.NotEmpty;
import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.component.ComponentInitializationException;
@@ -46,11 +47,11 @@ import org.testng.annotations.Test;
@SuppressWarnings("javadoc")
public class AttributeFilterPolicyTest {
- private MockPolicyRequirementRule policyMatcher;
+ @NonnullBeforeTest private MockPolicyRequirementRule policyMatcher;
- private AttributeRule valuePolicy;
+ @NonnullBeforeTest private AttributeRule valuePolicy;
- private MockMatcher valueMatcher;
+ @NonnullBeforeTest private MockMatcher valueMatcher;
@Nonnull @NotEmpty private final String ATTR_NAME = "foo";
@@ -78,7 +79,7 @@ public class AttributeFilterPolicyTest {
Assert.assertTrue(policy.getAttributeRules().contains(valuePolicy));
policy = new AttributeFilterPolicy(ID, policyMatcher, null);
- Assert.assertEquals(policy.getId(), ID);
+ Assert.assertEquals(policy.ensureId(), ID);
Assert.assertEquals(policy.getPolicyRequirementRule(), policyMatcher);
Assert.assertTrue(policy.getAttributeRules().isEmpty());
diff --git a/shib-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/impl/AttributeFilterServiceStrategy.java b/shib-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/impl/AttributeFilterServiceStrategy.java
index 8fc163e0a..499c896c1 100644
--- a/shib-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/impl/AttributeFilterServiceStrategy.java
+++ b/shib-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/impl/AttributeFilterServiceStrategy.java
@@ -66,7 +66,7 @@ public class AttributeFilterServiceStrategy extends AbstractIdentifiableInitiali
filter.initialize();
result = new SpringServiceableComponent<AttributeFilter>(filter);
result.setApplicationContext(appContext);
- result.setId(getId());
+ result.setId(ensureId());
result.initialize();
return result;
} catch (final ComponentInitializationException e) {
diff --git a/shib-attribute-filter-spring/src/test/java/net/shibboleth/idp/attribute/filter/spring/basic/AndTest.java b/shib-attribute-filter-spring/src/test/java/net/shibboleth/idp/attribute/filter/spring/basic/AndTest.java
index 9308a3e97..f74917eba 100644
--- a/shib-attribute-filter-spring/src/test/java/net/shibboleth/idp/attribute/filter/spring/basic/AndTest.java
+++ b/shib-attribute-filter-spring/src/test/java/net/shibboleth/idp/attribute/filter/spring/basic/AndTest.java
@@ -51,7 +51,7 @@ public class AndTest extends BaseAttributeFilterParserTest {
@Test public void multiNameTest() throws ComponentInitializationException {
AndMatcher what = (AndMatcher) getMatcher("andMulti.xml");
- assertTrue(what.getId().endsWith("multi"));
+ assertTrue(what.ensureId().endsWith("multi"));
final List<Matcher> children = what.getComposedMatchers();
assertEquals(children.size(), 5);
diff --git a/shib-attribute-filter-spring/src/test/java/net/shibboleth/idp/attribute/filter/spring/saml/AttributeInMetadataRuleParserTest.java b/shib-attribute-filter-spring/src/test/java/net/shibboleth/idp/attribute/filter/spring/saml/AttributeInMetadataRuleParserTest.java
index a9d428973..e4244fd75 100644
--- a/shib-attribute-filter-spring/src/test/java/net/shibboleth/idp/attribute/filter/spring/saml/AttributeInMetadataRuleParserTest.java
+++ b/shib-attribute-filter-spring/src/test/java/net/shibboleth/idp/attribute/filter/spring/saml/AttributeInMetadataRuleParserTest.java
@@ -48,14 +48,14 @@ public class AttributeInMetadataRuleParserTest extends BaseAttributeFilterParse
assertTrue(matcher.getMatchIfMetadataSilent());
assertTrue(matcher.getOnlyIfRequired());
- assertTrue(matcher.getId().endsWith(":PermitRule"));
+ assertTrue(matcher.ensureId().endsWith(":PermitRule"));
final PolicyFromMatcher policyRule = (PolicyFromMatcher) getPolicyRuleFromAttributeFilterPolicy(context);
matcher = (AttributeInMetadataMatcher) policyRule.getMatcher();
assertTrue(matcher.getMatchIfMetadataSilent());
assertTrue(matcher.getOnlyIfRequired());
- assertTrue(matcher.getId().endsWith(":PRR"));
+ assertTrue(matcher.ensureId().endsWith(":PRR"));
}
}
diff --git a/shib-attribute-impl/src/main/java/net/shibboleth/idp/attribute/transcoding/impl/AttributeRegistryServiceStrategy.java b/shib-attribute-impl/src/main/java/net/shibboleth/idp/attribute/transcoding/impl/AttributeRegistryServiceStrategy.java
index 955d97a07..105b76562 100644
--- a/shib-attribute-impl/src/main/java/net/shibboleth/idp/attribute/transcoding/impl/AttributeRegistryServiceStrategy.java
+++ b/shib-attribute-impl/src/main/java/net/shibboleth/idp/attribute/transcoding/impl/AttributeRegistryServiceStrategy.java
@@ -112,7 +112,7 @@ public class AttributeRegistryServiceStrategy extends AbstractIdentifiableInitia
}
final AttributeTranscoderRegistryImpl registry = new AttributeTranscoderRegistryImpl();
- registry.setId(getId());
+ registry.setId(ensureId());
registry.setApplicationContext(appContext);
registry.setNamingRegistry(namingRegistry);
registry.setExtendedConditionFactory(extendedConditionFactory);
diff --git a/shib-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/AbstractAttributeDefinition.java b/shib-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/AbstractAttributeDefinition.java
index 8a2dc8a20..caff62cd5 100644
--- a/shib-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/AbstractAttributeDefinition.java
+++ b/shib-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/AbstractAttributeDefinition.java
@@ -101,7 +101,7 @@ public abstract class AbstractAttributeDefinition extends AbstractResolverPlugin
throw new ComponentInitializationException("Invalid Attribute Definitions name (" + getId() + ")");
}
- if (IdPAttribute.isDeprecatedId(getId())) {
+ if (IdPAttribute.isDeprecatedId(ensureId())) {
DeprecationSupport.warnOnce(
ObjectType.CONFIGURATION,
"Use of AttributeDefinition id with invalid characters",
@@ -165,10 +165,12 @@ public abstract class AbstractAttributeDefinition extends AbstractResolverPlugin
if (null == prefix) {
final StringBuilder builder = new StringBuilder("Attribute Definition '").append(getId()).append("':");
prefix = builder.toString();
+ assert prefix != null;
if (null == logPrefix) {
logPrefix = prefix;
}
}
+ assert prefix != null;
return prefix;
}
diff --git a/shib-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/AbstractDataConnector.java b/shib-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/AbstractDataConnector.java
index 59c7a3053..44110559b 100644
--- a/shib-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/AbstractDataConnector.java
+++ b/shib-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/AbstractDataConnector.java
@@ -231,6 +231,7 @@ public abstract class AbstractDataConnector extends AbstractResolverPlugin<Map<S
if (null == prefix) {
final StringBuilder builder = new StringBuilder("Data Connector '").append(getId()).append("':");
prefix = builder.toString();
+ assert prefix != null;
if (null == logPrefix) {
logPrefix = prefix;
}
diff --git a/shib-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/ResolvedAttributeDefinition.java b/shib-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/ResolvedAttributeDefinition.java
index 7a266f305..823391985 100644
--- a/shib-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/ResolvedAttributeDefinition.java
+++ b/shib-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/ResolvedAttributeDefinition.java
@@ -93,8 +93,10 @@ public final class ResolvedAttributeDefinition extends AbstractAttributeDefiniti
}
/** {@inheritDoc} */
- @Override @Nullable public String getId() {
- return resolvedDefinition.getId();
+ @Override @Nonnull public String getId() {
+ final String id = resolvedDefinition.getId();
+ assert id != null;
+ return id;
}
/**
diff --git a/shib-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/ResolvedDataConnector.java b/shib-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/ResolvedDataConnector.java
index f5772a743..ec6898528 100644
--- a/shib-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/ResolvedDataConnector.java
+++ b/shib-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/ResolvedDataConnector.java
@@ -101,8 +101,10 @@ public final class ResolvedDataConnector extends AbstractDataConnector {
}
/** {@inheritDoc} */
- @Override @Nullable public String getId() {
- return resolvedConnector.getId();
+ @Override @Nonnull public String getId() {
+ final String id = resolvedConnector.getId();
+ assert id != null;
+ return id;
}
/** {@inheritDoc} */
diff --git a/shib-attribute-resolver-api/src/test/java/net/shibboleth/idp/attribute/resolver/AbstractAttributeDefinitionTest.java b/shib-attribute-resolver-api/src/test/java/net/shibboleth/idp/attribute/resolver/AbstractAttributeDefinitionTest.java
index ebb6fd8d5..509521ac6 100644
--- a/shib-attribute-resolver-api/src/test/java/net/shibboleth/idp/attribute/resolver/AbstractAttributeDefinitionTest.java
+++ b/shib-attribute-resolver-api/src/test/java/net/shibboleth/idp/attribute/resolver/AbstractAttributeDefinitionTest.java
@@ -44,7 +44,7 @@ public class AbstractAttributeDefinitionTest {
public void instantiation() {
MockAttributeDefinition definition = new MockAttributeDefinition("foo", null);
- Assert.assertEquals(definition.getId(), "foo");
+ Assert.assertEquals(definition.ensureId(), "foo");
Assert.assertFalse(definition.isDependencyOnly());
Assert.assertFalse(definition.isPreRequested());
}
diff --git a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/ContextDerivedAttributeDefinition.java b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/ContextDerivedAttributeDefinition.java
index cf0f145b9..9f73fbf9c 100644
--- a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/ContextDerivedAttributeDefinition.java
+++ b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/ContextDerivedAttributeDefinition.java
@@ -87,7 +87,7 @@ public class ContextDerivedAttributeDefinition extends AbstractAttributeDefiniti
}
log.debug("{} Generated {} values", getLogPrefix(), results.size());
log.trace("{} Values: {}", getLogPrefix(), results);
- final IdPAttribute attribute = new IdPAttribute(getId());
+ final IdPAttribute attribute = new IdPAttribute(ensureId());
attribute.setValues(results);
return attribute;
}
diff --git a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/DecryptedAttributeDefinition.java b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/DecryptedAttributeDefinition.java
index a24fde9fd..29b444900 100644
--- a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/DecryptedAttributeDefinition.java
+++ b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/DecryptedAttributeDefinition.java
@@ -89,7 +89,7 @@ public class DecryptedAttributeDefinition extends AbstractAttributeDefinition {
final List<IdPAttributeValue> results =
PluginDependencySupport.getMergedAttributeValues(workContext, getAttributeDependencies(),
- getDataConnectorDependencies(), getId());
+ getDataConnectorDependencies(), ensureId());
final List<IdPAttributeValue> decryptedValues = new ArrayList<>(results.size());
diff --git a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/PrescopedAttributeDefinition.java b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/PrescopedAttributeDefinition.java
index 10639fa0c..3ccc7938f 100644
--- a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/PrescopedAttributeDefinition.java
+++ b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/PrescopedAttributeDefinition.java
@@ -91,7 +91,7 @@ public class PrescopedAttributeDefinition extends AbstractAttributeDefinition {
PluginDependencySupport.getMergedAttributeValues(workContext,
getAttributeDependencies(),
getDataConnectorDependencies(),
- getId());
+ ensureId());
log.debug("{} Dependencies provided unmapped values of {}", getLogPrefix(), dependencyValues);
final List<IdPAttributeValue> valueList = new ArrayList<>(dependencyValues.size());
diff --git a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/PrincipalNameAttributeDefinition.java b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/PrincipalNameAttributeDefinition.java
index c8f83894a..c9c407afe 100644
--- a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/PrincipalNameAttributeDefinition.java
+++ b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/PrincipalNameAttributeDefinition.java
@@ -43,7 +43,7 @@ public class PrincipalNameAttributeDefinition extends AbstractAttributeDefinitio
throw new ResolutionException(getLogPrefix() + " provided principal name was empty");
}
- final IdPAttribute attribute = new IdPAttribute(getId());
+ final IdPAttribute attribute = new IdPAttribute(ensureId());
attribute.setValues(CollectionSupport.singletonList(new StringAttributeValue(principalName)));
return attribute;
}
diff --git a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/RegexSplitAttributeDefinition.java b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/RegexSplitAttributeDefinition.java
index 16f0cc060..ac4ed347c 100644
--- a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/RegexSplitAttributeDefinition.java
+++ b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/RegexSplitAttributeDefinition.java
@@ -92,7 +92,7 @@ public class RegexSplitAttributeDefinition extends AbstractAttributeDefinition {
PluginDependencySupport.getMergedAttributeValues(workContext,
getAttributeDependencies(),
getDataConnectorDependencies(),
- getId());
+ ensureId());
for (final IdPAttributeValue dependencyValue : dependencyValues) {
final String inputValue;
diff --git a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/ScopedAttributeDefinition.java b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/ScopedAttributeDefinition.java
index 0c5d53250..10faf058c 100644
--- a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/ScopedAttributeDefinition.java
+++ b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/ScopedAttributeDefinition.java
@@ -172,7 +172,7 @@ public class ScopedAttributeDefinition extends AbstractAttributeDefinition {
PluginDependencySupport.getMergedAttributeValues(workContext,
nonScopeAttributeDependencies,
getDataConnectorDependencies(),
- getId());
+ ensureId());
final List<IdPAttributeValue> valueList = new ArrayList<>(dependencyValues.size());
diff --git a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/ScriptedAttributeDefinition.java b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/ScriptedAttributeDefinition.java
index 87049b8d4..003b79ac7 100644
--- a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/ScriptedAttributeDefinition.java
+++ b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/ScriptedAttributeDefinition.java
@@ -159,6 +159,7 @@ public class ScriptedAttributeDefinition extends AbstractAttributeDefinition {
throw new ComponentInitializationException(getLogPrefix() + " no script was configured");
}
+ assert script != null;
scriptEvaluator = new AttributeDefinitionScriptEvaluator(script);
scriptEvaluator.setCustomObject(customObject);
scriptEvaluator.setContextExtenders(contextExtenders);
@@ -222,11 +223,11 @@ public class ScriptedAttributeDefinition extends AbstractAttributeDefinition {
getAttributeDependencies(),
getDataConnectorDependencies());
- if (dependencyAttributes.containsKey(getId())) {
+ if (dependencyAttributes.containsKey(ensureId())) {
log.debug("{} The attribute ID to be populated is a dependency, not created", getLogPrefix());
} else {
log.debug("{} Adding to-be-populated attribute to script context", getLogPrefix());
- final IdPAttribute newAttribute = new IdPAttribute(getId());
+ final IdPAttribute newAttribute = new IdPAttribute(ensureId());
scriptContext.setAttribute(getId(), new ScriptedIdPAttributeImpl(newAttribute, getLogPrefix()),
ScriptContext.ENGINE_SCOPE);
}
@@ -258,7 +259,7 @@ public class ScriptedAttributeDefinition extends AbstractAttributeDefinition {
@Nullable protected Object finalizeContext(@Nonnull final ScriptContext scriptContext,
@Nullable final Object scriptResult) throws ScriptException {
- final Object result = scriptContext.getAttribute(getId());
+ final Object result = scriptContext.getAttribute(ensureId());
if (null == result) {
log.info("{} No value returned", getLogPrefix());
return null;
diff --git a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/SimpleAttributeDefinition.java b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/SimpleAttributeDefinition.java
index 9696029c1..cc9a6f137 100644
--- a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/SimpleAttributeDefinition.java
+++ b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/SimpleAttributeDefinition.java
@@ -65,11 +65,11 @@ public class SimpleAttributeDefinition extends AbstractAttributeDefinition {
@Nonnull final AttributeResolverWorkContext workContext) throws ResolutionException {
Constraint.isNotNull(workContext, "AttributeResolverWorkContext cannot be null");
- final IdPAttribute result = new IdPAttribute(getId());
+ final IdPAttribute result = new IdPAttribute(ensureId());
final List<IdPAttributeValue> values = PluginDependencySupport.getMergedAttributeValues(workContext,
getAttributeDependencies(),
getDataConnectorDependencies(),
- getId());
+ ensureId());
if (isStripNulls()) {
result.setValues(
values.stream().
diff --git a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/TemplateAttributeDefinition.java b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/TemplateAttributeDefinition.java
index ef27fc863..5df6ae384 100644
--- a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/TemplateAttributeDefinition.java
+++ b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/TemplateAttributeDefinition.java
@@ -139,7 +139,7 @@ public class TemplateAttributeDefinition extends AbstractAttributeDefinition {
if (null == templateText) {
throw new ComponentInitializationException(getLogPrefix() + " no template provided");
}
-
+ assert engine!=null && templateText!=null;
template = Template.fromTemplate(engine, templateText);
}
@@ -148,7 +148,7 @@ public class TemplateAttributeDefinition extends AbstractAttributeDefinition {
@Nonnull final AttributeResolutionContext resolutionContext,
@Nonnull final AttributeResolverWorkContext workContext) throws ResolutionException {
- final IdPAttribute resultantAttribute = new IdPAttribute(getId());
+ final IdPAttribute resultantAttribute = new IdPAttribute(ensureId());
final Map<String,Iterator<IdPAttributeValue>> sourceValues = new LazyMap<>();
final int valueCount = setupSourceValues(workContext, sourceValues);
diff --git a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/mapped/impl/MappedAttributeDefinition.java b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/mapped/impl/MappedAttributeDefinition.java
index a81ff0736..55f9ce641 100644
--- a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/mapped/impl/MappedAttributeDefinition.java
+++ b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/mapped/impl/MappedAttributeDefinition.java
@@ -196,11 +196,11 @@ public class MappedAttributeDefinition extends AbstractAttributeDefinition {
PluginDependencySupport.getMergedAttributeValues(workContext,
getAttributeDependencies(),
getDataConnectorDependencies(),
- getId());
- log.debug("Attribute Definition '{}': Attempting to map the following values: {}", getId(), unmappedResults);
+ ensureId());
+ log.debug("Attribute Definition '{}': Attempting to map the following values: {}", ensureId(), unmappedResults);
// Bucket for results
- final IdPAttribute resultAttribute = new IdPAttribute(getId());
+ final IdPAttribute resultAttribute = new IdPAttribute(ensureId());
if (unmappedResults == null || unmappedResults.isEmpty()) {
log.debug("Attribute Definition {}: No values from dependencies", getId());
diff --git a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/impl/PairwiseIdDataConnector.java b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/impl/PairwiseIdDataConnector.java
index 86fdc4daa..a1fd30cc1 100644
--- a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/impl/PairwiseIdDataConnector.java
+++ b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/impl/PairwiseIdDataConnector.java
@@ -196,7 +196,7 @@ public class PairwiseIdDataConnector extends AbstractDataConnector {
PluginDependencySupport.getMergedAttributeValues(workContext,
getAttributeDependencies(),
getDataConnectorDependencies(),
- getId());
+ ensureId());
if (attributeValues == null || attributeValues.isEmpty()) {
log.debug("{} Source attribute {} for connector {} provide no values", getLogPrefix(),
getSourceAttributeInformation(), getId());
@@ -296,9 +296,11 @@ public class PairwiseIdDataConnector extends AbstractDataConnector {
// The message will have been logged above
return null;
}
- final IdPAttribute attribute = new IdPAttribute(getGeneratedAttributeId());
+ final String id = getGeneratedAttributeId();
+ assert id != null;
+ final IdPAttribute attribute = new IdPAttribute(id);
attribute.setValues(CollectionSupport.singletonList(StringAttributeValue.valueOf(value)));
- return CollectionSupport.singletonMap(getGeneratedAttributeId(), attribute);
+ return CollectionSupport.singletonMap(id, attribute);
}
}
diff --git a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/rdbms/impl/RDBMSDataConnector.java b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/rdbms/impl/RDBMSDataConnector.java
index f89bb9cfc..f0461b539 100644
--- a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/rdbms/impl/RDBMSDataConnector.java
+++ b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/rdbms/impl/RDBMSDataConnector.java
@@ -140,24 +140,15 @@ public class RDBMSDataConnector extends AbstractSearchDataConnector<ExecutableSt
throw new ResolutionException("Executable statement cannot be null");
}
- Connection connection = null;
- try {
- connection = dataSource.getConnection();
+
+ try (final Connection connection = dataSource.getConnection()) {
+ assert connection != null;
try (final ResultSet queryResult = statement.execute(connection)) {
log.trace("Data connector '{}': search returned {}", getId(), queryResult);
return getMappingStrategy().map(queryResult);
}
} catch (final SQLException e) {
throw new ResolutionException(getLogPrefix() + " Unable to execute SQL query", e);
- } finally {
- try {
- if (connection != null && !connection.isClosed()) {
- connection.close();
- }
- } catch (final SQLException e) {
- log.debug("{} Unable to close database connection; SQL State: {}, SQL Code: {}",
- new Object[] {getLogPrefix(), e.getSQLState(), e.getErrorCode()}, e);
- }
}
}
}
\ No newline at end of file
diff --git a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/impl/AttributeResolverImpl.java b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/impl/AttributeResolverImpl.java
index d78f67516..0d543721c 100644
--- a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/impl/AttributeResolverImpl.java
+++ b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/impl/AttributeResolverImpl.java
@@ -202,6 +202,7 @@ public class AttributeResolverImpl extends AbstractIdentifiableInitializableComp
if (!preRequestedAttributes.isEmpty()) {
log.debug("Resolving pre-requested Attributes");
for (final String attributeId : preRequestedAttributes) {
+ assert attributeId != null;
resolveAttributeDefinition(attributeId, resolutionContext);
}
finalizePreResolvedAttributes(resolutionContext);
@@ -720,7 +721,7 @@ public class AttributeResolverImpl extends AbstractIdentifiableInitializableComp
if (prc != null) {
final MetricContext timerCtx = prc.getSubcontext(MetricContext.class);
if (timerCtx != null) {
- timerCtx.start(getId());
+ timerCtx.start(ensureId());
return true;
}
}
@@ -737,7 +738,7 @@ public class AttributeResolverImpl extends AbstractIdentifiableInitializableComp
if (prc != null) {
final MetricContext timerCtx = prc.getSubcontext(MetricContext.class);
if (timerCtx != null) {
- timerCtx.stop(getId());
+ timerCtx.stop(ensureId());
}
}
}
diff --git a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/impl/AttributeResolverImplTest.java b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/impl/AttributeResolverImplTest.java
index 83afe9620..7c3e85194 100644
--- a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/impl/AttributeResolverImplTest.java
+++ b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/impl/AttributeResolverImplTest.java
@@ -94,7 +94,7 @@ public class AttributeResolverImplTest {
assertTrue(dataCon.isInitialized());
assertFalse(dataCon.isDestroyed());
- assertEquals(resolver.getId(), "toto");
+ assertEquals(resolver.ensureId(), "toto");
assertEquals(resolver.getAttributeDefinitions().size(), 1);
assertTrue(resolver.getAttributeDefinitions().containsKey("foo"));
assertEquals(resolver.getDataConnectors().size(), 1);
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 5bbd1169a..08d63554a 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
@@ -84,14 +84,14 @@ public class AttributeResolverServiceStrategy extends AbstractIdentifiableInitia
final AttributeResolverImpl resolver = new AttributeResolverImpl();
resolver.setAttributeDefinitions(definitions);
resolver.setDataConnectors(connectors);
- resolver.setId(getId());
+ resolver.setId(ensureId());
resolver.setStripNulls(isStripNulls());
final SpringServiceableComponent<AttributeResolver> result;
try {
resolver.initialize();
result = new SpringServiceableComponent<AttributeResolver>(resolver);
result.setApplicationContext(appContext);
- result.setId(getId());
+ result.setId(ensureId());
result.initialize();
return result;
} catch (final ComponentInitializationException e) {
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 224c77058..93e850dba 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
@@ -512,7 +512,7 @@ public class LDAPDataConnectorParserTest {
protected void doTest(final LDAPDataConnector dataConnector) throws ResolutionException {
- final String id = dataConnector.getId();
+ final String id = dataConnector.ensureId();
assertEquals(id, "myLDAP");
assertEquals(dataConnector.getNoRetryDelay(), Duration.ofMinutes(5));
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/impl/RDBMSDataConnectorParserTest.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/impl/RDBMSDataConnectorParserTest.java
index 9d3fbd95f..10db8c591 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/impl/RDBMSDataConnectorParserTest.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/impl/RDBMSDataConnectorParserTest.java
@@ -169,7 +169,7 @@ public class RDBMSDataConnectorParserTest {
}
protected void doTest(final RDBMSDataConnector dataConnector) throws ResolutionException {
- final String id = dataConnector.getId();
+ final String id = dataConnector.ensureId();
assertEquals("myDatabase", id);
assertEquals(Duration.ofMinutes(5), dataConnector.getNoRetryDelay());
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list