[java-identity-provider] branch main updated: IDP-2069 Null handling
Rod Widdowson
rdw at steadingsoftware.com
Thu Mar 2 20:14:23 UTC 2023
This is an automated email from the git hooks/post-receive script.
rdw pushed a commit to branch main
in repository java-identity-provider.
View the commit online:
http://git.shibboleth.net/view/?p=java-identity-provider.git;a=commit;h=af316513ebffe999f6ef49a576724262bf195c5f
The following commit(s) were added to refs/heads/main by this push:
new af316513e IDP-2069 Null handling
af316513e is described below
commit af316513ebffe999f6ef49a576724262bf195c5f
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Thu Mar 2 19:56:03 2023 +0000
IDP-2069 Null handling
https://shibboleth.atlassian.net/browse/IDP-2069
Cleanup idp-cli
---
.../idp/cli/AbstractCommandLineArguments.java | 7 ++++---
.../idp/cli/AbstractIdPHomeAwareCommandLine.java | 11 ++++++-----
.../src/main/java/net/shibboleth/idp/cli/CLI.java | 1 +
.../net/shibboleth/idp/cli/DataSealerArguments.java | 4 +++-
.../java/net/shibboleth/idp/cli/DataSealerCLI.java | 20 ++++++++++++++------
.../shibboleth/idp/cli/MetadataQueryArguments.java | 2 +-
.../shibboleth/idp/cli/ReloadMetadataArguments.java | 2 +-
.../shibboleth/idp/cli/ReloadServiceArguments.java | 2 +-
.../shibboleth/idp/cli/ResolverTestArguments.java | 7 ++++---
.../java/net/shibboleth/idp/cli/StatusArguments.java | 2 +-
.../shibboleth/idp/cli/impl/JarCheckArguments.java | 1 +
.../net/shibboleth/idp/cli/impl/JarCheckCLI.java | 6 ++++--
.../idp/cli/impl/ModuleManagerArguments.java | 18 ++++++++++--------
.../shibboleth/idp/cli/impl/ModuleManagerCLI.java | 14 +++++++++++---
14 files changed, 62 insertions(+), 35 deletions(-)
diff --git a/idp-cli/src/main/java/net/shibboleth/idp/cli/AbstractCommandLineArguments.java b/idp-cli/src/main/java/net/shibboleth/idp/cli/AbstractCommandLineArguments.java
index 3686b8d0f..0a84fb7ae 100644
--- a/idp-cli/src/main/java/net/shibboleth/idp/cli/AbstractCommandLineArguments.java
+++ b/idp-cli/src/main/java/net/shibboleth/idp/cli/AbstractCommandLineArguments.java
@@ -202,12 +202,13 @@ public abstract class AbstractCommandLineArguments implements CommandLineArgumen
@Nullable @NotEmpty public String getMethod() {
return StringSupport.trimOrNull(method);
}
-
+
/** {@inheritDoc} */
@Nullable @NonnullElements @NotLive @Unmodifiable public Map<String,String> getHeaders() {
- if (headers != null) {
+ final List<String> hdrs = headers;
+ if (hdrs != null) {
final Map<String,String> map = new HashMap<>();
- final Iterator<String> iter = headers.iterator();
+ final Iterator<String> iter = hdrs.iterator();
while (iter.hasNext()) {
final String h = iter.next();
if (iter.hasNext()) {
diff --git a/idp-cli/src/main/java/net/shibboleth/idp/cli/AbstractIdPHomeAwareCommandLine.java b/idp-cli/src/main/java/net/shibboleth/idp/cli/AbstractIdPHomeAwareCommandLine.java
index 08d4b23f0..2dd6a91c4 100644
--- a/idp-cli/src/main/java/net/shibboleth/idp/cli/AbstractIdPHomeAwareCommandLine.java
+++ b/idp-cli/src/main/java/net/shibboleth/idp/cli/AbstractIdPHomeAwareCommandLine.java
@@ -75,20 +75,21 @@ public abstract class AbstractIdPHomeAwareCommandLine<T extends AbstractIdPHomeA
return rc;
}
- if (args.getHttpClientName() != null) {
+ final String clientName = args.getHttpClientName();
+ if (clientName != null) {
try {
- httpClient = getApplicationContext().getBean(args.getHttpClientName(), HttpClient.class);
+ httpClient = getApplicationContext().getBean(clientName, HttpClient.class);
} catch (final NoSuchBeanDefinitionException e) {
getLogger().error("Could not locate HttpClient '{}'", args.getHttpClientName());
return RC_IO;
}
}
- if (args.getHttpClientSecurityParameterstName() != null) {
+ final String securityParameterstName = args.getHttpClientSecurityParameterstName();
+ if (securityParameterstName != null) {
try {
httpClientSecurityParameters =
- getApplicationContext().getBean(args.getHttpClientSecurityParameterstName(),
- HttpClientSecurityParameters.class);
+ getApplicationContext().getBean(securityParameterstName, HttpClientSecurityParameters.class);
} catch (final NoSuchBeanDefinitionException e) {
getLogger().error("Could not locate HttpClientSecurityParameters '{}'",
args.getHttpClientSecurityParameterstName());
diff --git a/idp-cli/src/main/java/net/shibboleth/idp/cli/CLI.java b/idp-cli/src/main/java/net/shibboleth/idp/cli/CLI.java
index 214c91169..84e82f117 100644
--- a/idp-cli/src/main/java/net/shibboleth/idp/cli/CLI.java
+++ b/idp-cli/src/main/java/net/shibboleth/idp/cli/CLI.java
@@ -85,6 +85,7 @@ public final class CLI {
} catch (final InstantiationException | IllegalAccessException e) {
errorAndExit(e.getMessage());
}
+ assert argObject != null;
try {
argObject.validate();
diff --git a/idp-cli/src/main/java/net/shibboleth/idp/cli/DataSealerArguments.java b/idp-cli/src/main/java/net/shibboleth/idp/cli/DataSealerArguments.java
index e699d3862..0a2f39ec3 100644
--- a/idp-cli/src/main/java/net/shibboleth/idp/cli/DataSealerArguments.java
+++ b/idp-cli/src/main/java/net/shibboleth/idp/cli/DataSealerArguments.java
@@ -19,6 +19,7 @@ package net.shibboleth.idp.cli;
import java.io.PrintStream;
+import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import org.slf4j.Logger;
@@ -56,10 +57,11 @@ public class DataSealerArguments extends AbstractIdPHomeAwareCommandLineArgument
@Nullable private OperationType operation;
/** {@inheritDoc} */
- public Logger getLog() {
+ public @Nonnull Logger getLog() {
if (log == null) {
log = LoggerFactory.getLogger(DataSealerArguments.class);
}
+ assert log != null;
return log;
}
diff --git a/idp-cli/src/main/java/net/shibboleth/idp/cli/DataSealerCLI.java b/idp-cli/src/main/java/net/shibboleth/idp/cli/DataSealerCLI.java
index 17ae89aa6..a5b613765 100644
--- a/idp-cli/src/main/java/net/shibboleth/idp/cli/DataSealerCLI.java
+++ b/idp-cli/src/main/java/net/shibboleth/idp/cli/DataSealerCLI.java
@@ -23,6 +23,7 @@ import javax.annotation.Nullable;
import org.slf4j.Logger;
import net.shibboleth.idp.Version;
+import net.shibboleth.idp.cli.DataSealerArguments.OperationType;
import net.shibboleth.shared.annotation.constraint.NotEmpty;
import net.shibboleth.shared.primitive.LoggerFactory;
import net.shibboleth.shared.security.DataSealer;
@@ -43,6 +44,7 @@ public class DataSealerCLI extends AbstractIdPHomeAwareCommandLine<DataSealerArg
if (log == null) {
log = LoggerFactory.getLogger(DataSealerCLI.class);
}
+ assert log!=null;
return log;
}
@@ -55,7 +57,9 @@ public class DataSealerCLI extends AbstractIdPHomeAwareCommandLine<DataSealerArg
/** {@inheritDoc} */
@Override
@Nonnull @NotEmpty protected String getVersion() {
- return Version.getVersion();
+ final String result = Version.getVersion();
+ assert result!=null;
+ return result;
}
/** {@inheritDoc} */
@@ -68,18 +72,22 @@ public class DataSealerCLI extends AbstractIdPHomeAwareCommandLine<DataSealerArg
try {
final DataSealer sealer;
- if (args.getDataSealerName() != null) {
- sealer = getApplicationContext().getBean(args.getDataSealerName(), DataSealer.class);
+ final String sealerName = args.getDataSealerName();
+ if (sealerName != null) {
+ sealer = getApplicationContext().getBean(sealerName, DataSealer.class);
} else {
sealer = getApplicationContext().getBean(DataSealer.class);
}
- switch (args.getOperation()) {
+ final OperationType op = args.getOperation();
+ final String arg2 = args.getOtherArgs().get(2);
+ assert arg2 != null && op != null;
+ switch (op) {
case WRAP:
- System.out.println(sealer.wrap(args.getOtherArgs().get(2)));
+ System.out.println(sealer.wrap(arg2));
break;
case UNWRAP:
- System.out.println(sealer.unwrap(args.getOtherArgs().get(2)));
+ System.out.println(sealer.unwrap(arg2));
break;
default:
diff --git a/idp-cli/src/main/java/net/shibboleth/idp/cli/MetadataQueryArguments.java b/idp-cli/src/main/java/net/shibboleth/idp/cli/MetadataQueryArguments.java
index 0a5c5c619..611d308c3 100644
--- a/idp-cli/src/main/java/net/shibboleth/idp/cli/MetadataQueryArguments.java
+++ b/idp-cli/src/main/java/net/shibboleth/idp/cli/MetadataQueryArguments.java
@@ -74,7 +74,7 @@ public class MetadataQueryArguments extends AbstractCommandLineArguments {
/** {@inheritDoc} */
@Override
- protected StringBuilder doBuildURL(@Nonnull final StringBuilder builder) {
+ protected @Nonnull StringBuilder doBuildURL(@Nonnull final StringBuilder builder) {
if (getPath() == null) {
builder.append("/profile/admin/mdquery");
diff --git a/idp-cli/src/main/java/net/shibboleth/idp/cli/ReloadMetadataArguments.java b/idp-cli/src/main/java/net/shibboleth/idp/cli/ReloadMetadataArguments.java
index ee1a5fe68..2ebf764d5 100644
--- a/idp-cli/src/main/java/net/shibboleth/idp/cli/ReloadMetadataArguments.java
+++ b/idp-cli/src/main/java/net/shibboleth/idp/cli/ReloadMetadataArguments.java
@@ -34,7 +34,7 @@ public class ReloadMetadataArguments extends AbstractCommandLineArguments {
/** {@inheritDoc} */
@Override
- protected StringBuilder doBuildURL(@Nonnull final StringBuilder builder) {
+ protected @Nonnull StringBuilder doBuildURL(@Nonnull final StringBuilder builder) {
if (getPath() == null) {
builder.append("/profile/admin/reload-metadata");
diff --git a/idp-cli/src/main/java/net/shibboleth/idp/cli/ReloadServiceArguments.java b/idp-cli/src/main/java/net/shibboleth/idp/cli/ReloadServiceArguments.java
index c03d28ff7..19b61d161 100644
--- a/idp-cli/src/main/java/net/shibboleth/idp/cli/ReloadServiceArguments.java
+++ b/idp-cli/src/main/java/net/shibboleth/idp/cli/ReloadServiceArguments.java
@@ -34,7 +34,7 @@ public class ReloadServiceArguments extends AbstractCommandLineArguments {
/** {@inheritDoc} */
@Override
- protected StringBuilder doBuildURL(@Nonnull final StringBuilder builder) {
+ protected @Nonnull StringBuilder doBuildURL(@Nonnull final StringBuilder builder) {
if (getPath() == null) {
builder.append("/profile/admin/reload-service");
diff --git a/idp-cli/src/main/java/net/shibboleth/idp/cli/ResolverTestArguments.java b/idp-cli/src/main/java/net/shibboleth/idp/cli/ResolverTestArguments.java
index 92af7c346..2fcd57dfd 100644
--- a/idp-cli/src/main/java/net/shibboleth/idp/cli/ResolverTestArguments.java
+++ b/idp-cli/src/main/java/net/shibboleth/idp/cli/ResolverTestArguments.java
@@ -93,7 +93,7 @@ public class ResolverTestArguments extends AbstractCommandLineArguments {
/** {@inheritDoc} */
@Override
- protected StringBuilder doBuildURL(@Nonnull final StringBuilder builder) {
+ protected @Nonnull StringBuilder doBuildURL(@Nonnull final StringBuilder builder) {
if (getPath() == null) {
builder.append("/profile/admin/resolvertest");
@@ -108,8 +108,9 @@ public class ResolverTestArguments extends AbstractCommandLineArguments {
try {
builder.append("requester=").append(URLEncoder.encode(requester, "UTF-8"));
builder.append("&principal=").append(URLEncoder.encode(principal, "UTF-8"));
- if (index != null) {
- builder.append("&acsIndex").append(index.toString());
+ final Integer idx = index;
+ if (idx != null) {
+ builder.append("&acsIndex").append(idx.toString());
}
if (saml1) {
builder.append("&saml1");
diff --git a/idp-cli/src/main/java/net/shibboleth/idp/cli/StatusArguments.java b/idp-cli/src/main/java/net/shibboleth/idp/cli/StatusArguments.java
index 0a121926e..fb3d362ce 100644
--- a/idp-cli/src/main/java/net/shibboleth/idp/cli/StatusArguments.java
+++ b/idp-cli/src/main/java/net/shibboleth/idp/cli/StatusArguments.java
@@ -24,7 +24,7 @@ public class StatusArguments extends AbstractCommandLineArguments {
/** {@inheritDoc} */
@Override
- protected StringBuilder doBuildURL(@Nonnull final StringBuilder builder) {
+ protected @Nonnull StringBuilder doBuildURL(@Nonnull final StringBuilder builder) {
if (getPath() == null) {
builder.append("/status");
diff --git a/idp-cli/src/main/java/net/shibboleth/idp/cli/impl/JarCheckArguments.java b/idp-cli/src/main/java/net/shibboleth/idp/cli/impl/JarCheckArguments.java
index b8f6c3998..3830a76c7 100644
--- a/idp-cli/src/main/java/net/shibboleth/idp/cli/impl/JarCheckArguments.java
+++ b/idp-cli/src/main/java/net/shibboleth/idp/cli/impl/JarCheckArguments.java
@@ -50,6 +50,7 @@ public class JarCheckArguments extends AbstractIdPHomeAwareCommandLineArguments
if (log == null) {
log = LoggerFactory.getLogger(JarCheckArguments.class);
}
+ assert log!=null;
return log;
}
diff --git a/idp-cli/src/main/java/net/shibboleth/idp/cli/impl/JarCheckCLI.java b/idp-cli/src/main/java/net/shibboleth/idp/cli/impl/JarCheckCLI.java
index aefabc771..175921a23 100644
--- a/idp-cli/src/main/java/net/shibboleth/idp/cli/impl/JarCheckCLI.java
+++ b/idp-cli/src/main/java/net/shibboleth/idp/cli/impl/JarCheckCLI.java
@@ -148,8 +148,10 @@ public final class JarCheckCLI extends AbstractIdPHomeAwareCommandLine<JarCheckA
}
/** {@inheritDoc} */
- protected String getVersion() {
- return Version.getVersion();
+ protected @Nonnull String getVersion() {
+ final String result = Version.getVersion();
+ assert result!=null;
+ return result;
}
/** {@inheritDoc} */
diff --git a/idp-cli/src/main/java/net/shibboleth/idp/cli/impl/ModuleManagerArguments.java b/idp-cli/src/main/java/net/shibboleth/idp/cli/impl/ModuleManagerArguments.java
index 2e4192a98..2a6eb2e6f 100644
--- a/idp-cli/src/main/java/net/shibboleth/idp/cli/impl/ModuleManagerArguments.java
+++ b/idp-cli/src/main/java/net/shibboleth/idp/cli/impl/ModuleManagerArguments.java
@@ -34,6 +34,7 @@ import net.shibboleth.idp.module.IdPModule;
import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.annotation.constraint.NotLive;
import net.shibboleth.shared.annotation.constraint.Unmodifiable;
+import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.primitive.LoggerFactory;
import net.shibboleth.shared.primitive.StringSupport;
@@ -74,6 +75,7 @@ public class ModuleManagerArguments extends AbstractIdPHomeAwareCommandLineArgum
if (log == null) {
log = LoggerFactory.getLogger(ModuleManagerArguments.class);
}
+ assert log!=null;
return log;
}
@@ -91,8 +93,8 @@ public class ModuleManagerArguments extends AbstractIdPHomeAwareCommandLineArgum
*
* @return module ID(s) to report on
*/
- @Nullable @NonnullElements @NotLive @Unmodifiable public Collection<String> getInfoModuleIds() {
- return List.copyOf(StringSupport.normalizeStringCollection(infoModuleIds));
+ @Nonnull @NonnullElements @NotLive @Unmodifiable public Collection<String> getInfoModuleIds() {
+ return CollectionSupport.copyToList(StringSupport.normalizeStringCollection(infoModuleIds));
}
/**
@@ -100,8 +102,8 @@ public class ModuleManagerArguments extends AbstractIdPHomeAwareCommandLineArgum
*
* @return module ID(s) to test
*/
- @Nullable @NonnullElements @NotLive @Unmodifiable public Collection<String> getTestModuleIds() {
- return List.copyOf(StringSupport.normalizeStringCollection(testModuleIds));
+ @Nonnull @NonnullElements @NotLive @Unmodifiable public Collection<String> getTestModuleIds() {
+ return CollectionSupport.copyToList(StringSupport.normalizeStringCollection(testModuleIds));
}
/**
@@ -109,8 +111,8 @@ public class ModuleManagerArguments extends AbstractIdPHomeAwareCommandLineArgum
*
* @return module ID(s) to enable
*/
- @Nullable @NonnullElements @NotLive @Unmodifiable public Collection<String> getEnableModuleIds() {
- return List.copyOf(StringSupport.normalizeStringCollection(enableModuleIds));
+ @Nonnull @NonnullElements @NotLive @Unmodifiable public Collection<String> getEnableModuleIds() {
+ return CollectionSupport.copyToList(StringSupport.normalizeStringCollection(enableModuleIds));
}
/**
@@ -118,8 +120,8 @@ public class ModuleManagerArguments extends AbstractIdPHomeAwareCommandLineArgum
*
* @return module ID(s) to disable
*/
- @Nullable @NonnullElements @NotLive @Unmodifiable public Collection<String> getDisableModuleIds() {
- return List.copyOf(StringSupport.normalizeStringCollection(disableModuleIds));
+ @Nonnull @NonnullElements @NotLive @Unmodifiable public Collection<String> getDisableModuleIds() {
+ return CollectionSupport.copyToList(StringSupport.normalizeStringCollection(disableModuleIds));
}
/**
diff --git a/idp-cli/src/main/java/net/shibboleth/idp/cli/impl/ModuleManagerCLI.java b/idp-cli/src/main/java/net/shibboleth/idp/cli/impl/ModuleManagerCLI.java
index ac6f8012c..2df54d925 100644
--- a/idp-cli/src/main/java/net/shibboleth/idp/cli/impl/ModuleManagerCLI.java
+++ b/idp-cli/src/main/java/net/shibboleth/idp/cli/impl/ModuleManagerCLI.java
@@ -34,6 +34,7 @@ import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import org.slf4j.Logger;
+import org.springframework.core.env.ConfigurableEnvironment;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
@@ -50,6 +51,7 @@ import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.annotation.constraint.NotLive;
import net.shibboleth.shared.annotation.constraint.Unmodifiable;
import net.shibboleth.shared.collection.CollectionSupport;
+import net.shibboleth.shared.logic.Constraint;
import net.shibboleth.shared.primitive.LoggerFactory;
/**
@@ -66,6 +68,7 @@ public final class ModuleManagerCLI extends AbstractIdPHomeAwareCommandLine<Modu
if (log == null) {
log = LoggerFactory.getLogger(ModuleManagerCLI.class);
}
+ assert log!=null;
return log;
}
@@ -77,8 +80,10 @@ public final class ModuleManagerCLI extends AbstractIdPHomeAwareCommandLine<Modu
/** {@inheritDoc} */
@Override
- protected String getVersion() {
- return Version.getVersion();
+ protected @Nonnull String getVersion() {
+ final String result = Version.getVersion();
+ assert result!=null;
+ return result;
}
/** {@inheritDoc} */
@@ -96,8 +101,11 @@ public final class ModuleManagerCLI extends AbstractIdPHomeAwareCommandLine<Modu
}
try {
+ final ConfigurableEnvironment env = getApplicationContext().getEnvironment();
+ assert env != null;
+ final String idpHome = Constraint.isNotNull(env.getProperty("idp.home"), "Property 'idp.home' not set");
final ModuleContext moduleContext =
- new ModuleContext(getApplicationContext().getEnvironment().getProperty("idp.home"));
+ new ModuleContext(idpHome);
moduleContext.setHttpClient(getHttpClient());
moduleContext.setHttpClientSecurityParameters(getHttpClientSecurityParameters());
moduleContext.setLanguageRanges(args.getLanguageRanges());
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list