[java-identity-provider] branch master updated: IDP-1516 - Reduce Guava dependence
Scott Cantor
cantor.2 at osu.edu
Mon Oct 28 15:39:59 EDT 2019
This is an automated email from the git hooks/post-receive script.
scantor pushed a commit to branch master
in repository java-identity-provider.
View the commit online:
http://git.shibboleth.net/view/?p=java-identity-provider.git;a=commit;h=33b1e08e3eb06a27d52adc6bc0c0a045381fc7e5
The following commit(s) were added to refs/heads/master by this push:
new 33b1e08 IDP-1516 - Reduce Guava dependence
33b1e08 is described below
commit 33b1e08e3eb06a27d52adc6bc0c0a045381fc7e5
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Mon Oct 28 15:39:53 2019 -0400
IDP-1516 - Reduce Guava dependence
https://issues.shibboleth.net/jira/browse/IDP-1516
---
.../idp/attribute/context/AttributeContext.java | 6 ++--
.../idp/authn/AbstractCredentialValidator.java | 5 ++--
.../idp/authn/AbstractValidationAction.java | 17 +++++-------
.../idp/authn/AuthenticationFlowDescriptor.java | 5 ++--
.../idp/authn/context/AuthenticationContext.java | 4 +--
.../idp/authn/context/CertificateContext.java | 6 ++--
.../authn/context/PreferredPrincipalContext.java | 7 +----
.../authn/context/RequestedPrincipalContext.java | 7 +----
.../idp/authn/duo/BasicDuoIntegration.java | 5 +---
.../principal/ProxyAuthenticationPrincipal.java | 5 ++--
.../MockAuthenticationProfileConfiguration.java | 20 +++++---------
.../DefaultAuthenticationResultSerializer.java | 8 ++----
.../authn/impl/PopulateAuthenticationContext.java | 11 ++------
.../PopulateSubjectCanonicalizationContext.java | 8 ++----
.../idp/authn/impl/RemoteUserAuthServlet.java | 7 ++---
.../idp/authn/impl/ValidateCredentials.java | 6 +---
.../idp/authn/impl/ValidateUserAgentAddress.java | 6 ++--
.../authn/impl/X500SubjectCanonicalization.java | 10 ++-----
.../impl/InexactPrincipalEvalPredicateFactory.java | 5 ++--
.../ProxyAuthenticationPrincipalSerializer.java | 8 +-----
.../idp/authn/spnego/impl/KerberosSettings.java | 8 ++----
.../DefaultAuthenticationResultSerializerTest.java | 9 +++---
.../idp/cas/config/impl/LoginConfiguration.java | 32 +++++++++++++++-------
.../PrepareTicketValidationResponseAction.java | 5 +---
.../consent/storage/impl/CollectionSerializer.java | 11 +++-----
25 files changed, 81 insertions(+), 140 deletions(-)
diff --git a/idp-attribute-api/src/main/java/net/shibboleth/idp/attribute/context/AttributeContext.java b/idp-attribute-api/src/main/java/net/shibboleth/idp/attribute/context/AttributeContext.java
index 18b7894..4849e6a 100644
--- a/idp-attribute-api/src/main/java/net/shibboleth/idp/attribute/context/AttributeContext.java
+++ b/idp-attribute-api/src/main/java/net/shibboleth/idp/attribute/context/AttributeContext.java
@@ -35,8 +35,6 @@ import org.opensaml.messaging.context.BaseContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.collect.ImmutableMap;
-
/**
* A {@link BaseContext} that tracks a set of attributes. Usually the tracked attributes are about a particular user and
* associated with a particular service request.
@@ -86,7 +84,7 @@ public final class AttributeContext extends BaseContext {
}
}
- attributes = ImmutableMap.copyOf(checkedAttributes);
+ attributes = Map.copyOf(checkedAttributes);
}
@@ -124,6 +122,6 @@ public final class AttributeContext extends BaseContext {
}
}
- unfilteredAttributes = ImmutableMap.copyOf(checkedAttributes);
+ unfilteredAttributes = Map.copyOf(checkedAttributes);
}
}
\ No newline at end of file
diff --git a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractCredentialValidator.java b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractCredentialValidator.java
index 8c687fa..df873bf 100644
--- a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractCredentialValidator.java
+++ b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractCredentialValidator.java
@@ -45,7 +45,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.common.base.Predicates;
-import com.google.common.collect.Collections2;
/**
* An abstract {@link CredentialValidator} that handles some common behavior.
@@ -105,8 +104,8 @@ public abstract class AbstractCredentialValidator extends AbstractIdentifiedInit
public void setSupportedPrincipals(@Nullable @NonnullElements final Collection<Principal> principals) {
ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
- if (principals != null && !principals.isEmpty()) {
- final Collection<Principal> copy = Collections2.filter(principals, Predicates.notNull());
+ if (principals != null) {
+ final Collection<Principal> copy = Set.copyOf(principals);
if (!copy.isEmpty()) {
customPrincipals = new Subject();
customPrincipals.getPrincipals().addAll(copy);
diff --git a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractValidationAction.java b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractValidationAction.java
index ca0e856..aca455e 100644
--- a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractValidationAction.java
+++ b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractValidationAction.java
@@ -20,7 +20,8 @@ package net.shibboleth.idp.authn;
import java.security.Principal;
import java.util.Collection;
import java.util.Collections;
-import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.function.Function;
@@ -55,11 +56,7 @@ import org.opensaml.profile.context.ProfileRequestContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.base.Predicates;
import com.google.common.base.Strings;
-import com.google.common.collect.Collections2;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Iterables;
/**
@@ -168,7 +165,8 @@ public abstract class AbstractValidationAction extends AbstractAuthenticationAct
* @return classified error message map
*/
@Nonnull @NonnullElements @Unmodifiable @NotLive public Map<String,Collection<String>> getClassifiedErrors() {
- return ImmutableMap.copyOf(classifiedMessages);
+ // For now this is using the older wrapper approach to guarding a live map to maintain the map insertion order.
+ return Collections.unmodifiableMap(classifiedMessages);
}
/**
@@ -180,12 +178,11 @@ public abstract class AbstractValidationAction extends AbstractAuthenticationAct
ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
Constraint.isNotNull(messages, "Map of classified messages cannot be null");
- classifiedMessages = new HashMap<>();
+ classifiedMessages = new LinkedHashMap<>();
for (final Map.Entry<String, Collection<String>> entry : messages.entrySet()) {
if (entry.getKey() != null && !entry.getKey().isEmpty()
&& entry.getValue() != null && !entry.getValue().isEmpty()) {
- classifiedMessages.put(entry.getKey(),
- ImmutableList.copyOf(Collections2.filter(entry.getValue(), Predicates.notNull())));
+ classifiedMessages.put(entry.getKey(), List.copyOf(entry.getValue()));
}
}
}
@@ -254,7 +251,7 @@ public abstract class AbstractValidationAction extends AbstractAuthenticationAct
getSubject().getPrincipals().clear();
if (principals != null && !principals.isEmpty()) {
- getSubject().getPrincipals().addAll(Collections2.filter(principals, Predicates.notNull()));
+ getSubject().getPrincipals().addAll(Set.copyOf(principals));
}
}
diff --git a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AuthenticationFlowDescriptor.java b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AuthenticationFlowDescriptor.java
index 6e5d116..48722a2 100644
--- a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AuthenticationFlowDescriptor.java
+++ b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AuthenticationFlowDescriptor.java
@@ -48,7 +48,6 @@ import org.opensaml.storage.StorageSerializer;
import com.google.common.base.MoreObjects;
import com.google.common.base.Predicates;
-import com.google.common.collect.Collections2;
/**
* A descriptor for an authentication flow.
@@ -286,7 +285,7 @@ public class AuthenticationFlowDescriptor extends AbstractIdentifiableInitializa
* @return a live collection of supported principals
*/
@Nonnull @NonnullElements public Collection<Principal> getSupportedPrincipals() {
- return Collections2.filter(supportedPrincipals.getPrincipals(), Predicates.notNull());
+ return supportedPrincipals.getPrincipals();
}
/**
@@ -300,7 +299,7 @@ public class AuthenticationFlowDescriptor extends AbstractIdentifiableInitializa
Constraint.isNotNull(principals, "Principal collection cannot be null.");
supportedPrincipals.getPrincipals().clear();
- supportedPrincipals.getPrincipals().addAll(Collections2.filter(principals, Predicates.notNull()));
+ supportedPrincipals.getPrincipals().addAll(Set.copyOf(principals));
}
/**
diff --git a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/context/AuthenticationContext.java b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/context/AuthenticationContext.java
index 3903eab..19c209c 100644
--- a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/context/AuthenticationContext.java
+++ b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/context/AuthenticationContext.java
@@ -47,8 +47,6 @@ import org.opensaml.messaging.context.BaseContext;
import org.opensaml.profile.context.ProfileRequestContext;
import com.google.common.base.MoreObjects;
-import com.google.common.base.Predicates;
-import com.google.common.collect.Collections2;
/**
* A context representing the state of an authentication attempt, this is the primary
@@ -653,7 +651,7 @@ public final class AuthenticationContext extends BaseContext {
final Constructor<? extends Principal> ctor = claz.getConstructor(String.class);
final List<Principal> prins = new ArrayList<>(principals.size());
- for (final String prin : Collections2.filter(principals, Predicates.notNull())) {
+ for (final String prin : principals) {
prins.add(ctor.newInstance(prin));
}
diff --git a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/context/CertificateContext.java b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/context/CertificateContext.java
index 5a8fd27..b4f0890 100644
--- a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/context/CertificateContext.java
+++ b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/context/CertificateContext.java
@@ -20,6 +20,7 @@ package net.shibboleth.idp.authn.context;
import java.security.cert.Certificate;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.List;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
@@ -30,9 +31,6 @@ import net.shibboleth.utilities.java.support.logic.Constraint;
import org.opensaml.messaging.context.BaseContext;
-import com.google.common.base.Predicates;
-import com.google.common.collect.Collections2;
-
/**
* Context that carries a {@link Certificate} to be validated.
*
@@ -93,7 +91,7 @@ public final class CertificateContext extends BaseContext {
Constraint.isNotNull(certs, "Intermediate certificate collection cannot be null");
intermediates.clear();
- intermediates.addAll(Collections2.filter(certs, Predicates.notNull()));
+ intermediates.addAll(List.copyOf(certs));
return this;
}
diff --git a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/context/PreferredPrincipalContext.java b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/context/PreferredPrincipalContext.java
index 2632475..07fa0f8 100644
--- a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/context/PreferredPrincipalContext.java
+++ b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/context/PreferredPrincipalContext.java
@@ -32,10 +32,6 @@ import net.shibboleth.utilities.java.support.logic.Constraint;
import org.opensaml.messaging.context.BaseContext;
-import com.google.common.base.Predicates;
-import com.google.common.collect.Collections2;
-import com.google.common.collect.ImmutableList;
-
/**
* A context that holds information about an authentication request's
* preference for a specific custom {@link Principal}.
@@ -78,9 +74,8 @@ public final class PreferredPrincipalContext extends BaseContext {
*/
@Nonnull public PreferredPrincipalContext setPreferredPrincipals(
@Nonnull @NonnullElements final List<Principal> principals) {
- Constraint.isNotNull(principals, "Principal list cannot be null");
- preferredPrincipals = ImmutableList.copyOf(Collections2.filter(principals, Predicates.notNull()));
+ preferredPrincipals = List.copyOf(Constraint.isNotNull(principals, "Principal list cannot be null"));
return this;
}
diff --git a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/context/RequestedPrincipalContext.java b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/context/RequestedPrincipalContext.java
index c7ba481..f9c6158 100644
--- a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/context/RequestedPrincipalContext.java
+++ b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/context/RequestedPrincipalContext.java
@@ -40,10 +40,6 @@ import net.shibboleth.utilities.java.support.primitive.StringSupport;
import org.opensaml.messaging.context.BaseContext;
-import com.google.common.base.Predicates;
-import com.google.common.collect.Collections2;
-import com.google.common.collect.ImmutableList;
-
/**
* A context that holds information about an authentication request's
* requirement for a specific custom {@link Principal}.
@@ -151,9 +147,8 @@ public final class RequestedPrincipalContext extends BaseContext {
*/
@Nonnull public RequestedPrincipalContext setRequestedPrincipals(
@Nonnull @NonnullElements final List<Principal> principals) {
- Constraint.isNotNull(principals, "Principal list cannot be null");
- requestedPrincipals = ImmutableList.copyOf(Collections2.filter(principals, Predicates.notNull()));
+ requestedPrincipals = List.copyOf(Constraint.isNotNull(principals, "Principal list cannot be null"));
return this;
}
diff --git a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/duo/BasicDuoIntegration.java b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/duo/BasicDuoIntegration.java
index 5c3c41b..f18014a 100644
--- a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/duo/BasicDuoIntegration.java
+++ b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/duo/BasicDuoIntegration.java
@@ -35,9 +35,6 @@ import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.security.auth.Subject;
-import com.google.common.base.Predicates;
-import com.google.common.collect.Collections2;
-
/**
* Wrapper for use of Duo.
*
@@ -151,7 +148,7 @@ public class BasicDuoIntegration extends AbstractInitializableComponent implemen
supportedPrincipals.getPrincipals().clear();
if (principals != null && !principals.isEmpty()) {
- supportedPrincipals.getPrincipals().addAll(Collections2.filter(principals, Predicates.notNull()));
+ supportedPrincipals.getPrincipals().addAll(Set.copyOf(principals));
}
}
diff --git a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/principal/ProxyAuthenticationPrincipal.java b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/principal/ProxyAuthenticationPrincipal.java
index b26e4fa..1a50756 100644
--- a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/principal/ProxyAuthenticationPrincipal.java
+++ b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/principal/ProxyAuthenticationPrincipal.java
@@ -20,6 +20,7 @@ package net.shibboleth.idp.authn.principal;
import java.security.Principal;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.List;
import javax.annotation.Nonnull;
@@ -29,8 +30,6 @@ import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
import net.shibboleth.utilities.java.support.logic.Constraint;
import com.google.common.base.MoreObjects;
-import com.google.common.base.Predicates;
-import com.google.common.collect.Collections2;
/**
* Principal that wraps a set of proxied authentication authorities.
@@ -55,7 +54,7 @@ public class ProxyAuthenticationPrincipal implements Principal {
public ProxyAuthenticationPrincipal(@Nonnull @NonnullElements final Collection<String> proxiedAuthorities) {
Constraint.isNotNull(proxiedAuthorities, "Proxied authority collection cannot be null");
- authorities = new ArrayList<>(Collections2.filter(proxiedAuthorities, Predicates.notNull()));
+ authorities = new ArrayList<>(List.copyOf(proxiedAuthorities));
}
/** {@inheritDoc} */
diff --git a/idp-authn-api/src/test/java/net/shibboleth/idp/authn/config/MockAuthenticationProfileConfiguration.java b/idp-authn-api/src/test/java/net/shibboleth/idp/authn/config/MockAuthenticationProfileConfiguration.java
index d3109db..06c6361 100644
--- a/idp-authn-api/src/test/java/net/shibboleth/idp/authn/config/MockAuthenticationProfileConfiguration.java
+++ b/idp-authn-api/src/test/java/net/shibboleth/idp/authn/config/MockAuthenticationProfileConfiguration.java
@@ -18,10 +18,8 @@
package net.shibboleth.idp.authn.config;
import java.security.Principal;
-import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
-import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.function.Predicate;
@@ -32,8 +30,6 @@ import javax.annotation.Nullable;
import org.opensaml.profile.context.ProfileRequestContext;
import com.google.common.base.Predicates;
-import com.google.common.collect.Collections2;
-import com.google.common.collect.ImmutableList;
import net.shibboleth.idp.authn.config.AuthenticationProfileConfiguration;
import net.shibboleth.idp.profile.config.AbstractProfileConfiguration;
@@ -72,7 +68,7 @@ public class MockAuthenticationProfileConfiguration extends AbstractProfileConfi
*/
public MockAuthenticationProfileConfiguration(@Nonnull @NotEmpty final String id,
@Nonnull @NonnullElements final List<Principal> methods) {
- this(id, methods, Collections.<String>emptySet(), Collections.<String>emptyList());
+ this(id, methods, Collections.emptySet(), Collections.emptyList());
}
/**
@@ -97,7 +93,7 @@ public class MockAuthenticationProfileConfiguration extends AbstractProfileConfi
/** {@inheritDoc} */
@Nonnull @NonnullElements @NotLive @Unmodifiable public List<Principal> getDefaultAuthenticationMethods(
@Nullable final ProfileRequestContext profileRequestContext) {
- return ImmutableList.copyOf(defaultAuthenticationMethods);
+ return defaultAuthenticationMethods;
}
/**
@@ -106,15 +102,13 @@ public class MockAuthenticationProfileConfiguration extends AbstractProfileConfi
* @param methods default authentication methods to use
*/
public void setDefaultAuthenticationMethods(@Nonnull @NonnullElements final List<Principal> methods) {
- Constraint.isNotNull(methods, "List of methods cannot be null");
-
- defaultAuthenticationMethods = new ArrayList<>(Collections2.filter(methods, Predicates.notNull()));
+ defaultAuthenticationMethods = List.copyOf(Constraint.isNotNull(methods, "List of methods cannot be null"));
}
/** {@inheritDoc} */
@Nonnull @NonnullElements @NotLive @Unmodifiable public List<String> getNameIDFormatPrecedence(
@Nullable final ProfileRequestContext profileRequestContext) {
- return ImmutableList.copyOf(nameIDFormatPrecedence);
+ return nameIDFormatPrecedence;
}
/**
@@ -125,7 +119,7 @@ public class MockAuthenticationProfileConfiguration extends AbstractProfileConfi
public void setNameIDFormatPrecedence(@Nonnull @NonnullElements final List<String> formats) {
Constraint.isNotNull(formats, "List of formats cannot be null");
- nameIDFormatPrecedence = new ArrayList<>(StringSupport.normalizeStringCollection(formats));
+ nameIDFormatPrecedence = List.copyOf(StringSupport.normalizeStringCollection(formats));
}
/** {@inheritDoc} */
@@ -142,7 +136,7 @@ public class MockAuthenticationProfileConfiguration extends AbstractProfileConfi
public void setAuthenticationFlows(@Nonnull @NonnullElements final Collection<String> flows) {
Constraint.isNotNull(flows, "Collection of flows cannot be null");
- authenticationFlows = new HashSet<>(StringSupport.normalizeStringCollection(flows));
+ authenticationFlows = Set.copyOf(StringSupport.normalizeStringCollection(flows));
}
/** {@inheritDoc} */
@@ -159,7 +153,7 @@ public class MockAuthenticationProfileConfiguration extends AbstractProfileConfi
public void setPostAuthenticationFlows(@Nonnull @NonnullElements final Collection<String> flows) {
Constraint.isNotNull(flows, "Collection of flows cannot be null");
- postAuthenticationFlows = new ArrayList<>(StringSupport.normalizeStringCollection(flows));
+ postAuthenticationFlows = List.copyOf(StringSupport.normalizeStringCollection(flows));
}
/** {@inheritDoc} */
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/DefaultAuthenticationResultSerializer.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/DefaultAuthenticationResultSerializer.java
index 99cbbab..138c74f 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/DefaultAuthenticationResultSerializer.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/DefaultAuthenticationResultSerializer.java
@@ -22,10 +22,10 @@ import java.io.StringReader;
import java.io.StringWriter;
import java.security.Principal;
import java.time.Instant;
-import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
+import java.util.List;
import java.util.Set;
import javax.annotation.Nonnull;
@@ -52,14 +52,12 @@ import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
import net.shibboleth.utilities.java.support.component.AbstractInitializableComponent;
import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
import net.shibboleth.utilities.java.support.component.ComponentSupport;
+import net.shibboleth.utilities.java.support.logic.Constraint;
import org.opensaml.storage.StorageSerializer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.base.Predicates;
-import com.google.common.collect.Collections2;
-
/**
* Handles serialization of results, delegating handling of {@link Principal} objects to one or more
* {@link PrincipalSerializer} plugins.
@@ -122,7 +120,7 @@ public class DefaultAuthenticationResultSerializer extends AbstractInitializable
@Nonnull @NonnullElements final Collection<PrincipalSerializer<String>> serializers) {
ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
- principalSerializers = new ArrayList<>(Collections2.filter(serializers, Predicates.notNull()));
+ principalSerializers = List.copyOf(Constraint.isNotNull(serializers, "Serializers cannot be null"));
}
/**
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/PopulateAuthenticationContext.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/PopulateAuthenticationContext.java
index 4208bb6..4a8edef 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/PopulateAuthenticationContext.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/PopulateAuthenticationContext.java
@@ -17,9 +17,9 @@
package net.shibboleth.idp.authn.impl;
-import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
+import java.util.List;
import java.util.function.Function;
import javax.annotation.Nonnull;
@@ -39,9 +39,6 @@ import org.opensaml.profile.context.ProfileRequestContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.base.Predicates;
-import com.google.common.collect.Collections2;
-
/**
* An action that populates an {@link AuthenticationContext} with the {@link AuthenticationFlowDescriptor}
* objects configured into the IdP, potential flows filtered by flow IDs from a lookup function.
@@ -89,9 +86,8 @@ public class PopulateAuthenticationContext extends AbstractAuthenticationAction
*/
public void setAvailableFlows(@Nonnull @NonnullElements final Collection<AuthenticationFlowDescriptor> flows) {
ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
- Constraint.isNotNull(flows, "Flow collection cannot be null");
- availableFlows = new ArrayList<>(Collections2.filter(flows, Predicates.notNull()));
+ availableFlows = List.copyOf(Constraint.isNotNull(flows, "Flow collection cannot be null"));
}
/**
@@ -103,9 +99,8 @@ public class PopulateAuthenticationContext extends AbstractAuthenticationAction
*/
public void setPotentialFlows(@Nonnull @NonnullElements final Collection<AuthenticationFlowDescriptor> flows) {
ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
- Constraint.isNotNull(flows, "Flow collection cannot be null");
- potentialFlows = new ArrayList<>(Collections2.filter(flows, Predicates.notNull()));
+ potentialFlows = List.copyOf(Constraint.isNotNull(flows, "Flow collection cannot be null"));
}
/**
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/PopulateSubjectCanonicalizationContext.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/PopulateSubjectCanonicalizationContext.java
index 6acf17c..1d3c93d 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/PopulateSubjectCanonicalizationContext.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/PopulateSubjectCanonicalizationContext.java
@@ -17,9 +17,9 @@
package net.shibboleth.idp.authn.impl;
-import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
+import java.util.List;
import javax.annotation.Nonnull;
@@ -34,9 +34,6 @@ import org.opensaml.profile.context.ProfileRequestContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.base.Predicates;
-import com.google.common.collect.Collections2;
-
/**
* An action that populates a {@link SubjectCanonicalizationContext} with the
* {@link SubjectCanonicalizationFlowDescriptor} objects configured into the IdP.
@@ -66,9 +63,8 @@ public class PopulateSubjectCanonicalizationContext extends AbstractSubjectCanon
public void setAvailableFlows(
@Nonnull @NonnullElements final Collection<SubjectCanonicalizationFlowDescriptor> flows) {
ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
- Constraint.isNotNull(flows, "Flow collection cannot be null");
- availableFlows = new ArrayList<>(Collections2.filter(flows, Predicates.notNull()));
+ availableFlows = List.copyOf(Constraint.isNotNull(flows, "Flow collection cannot be null"));
}
/** {@inheritDoc} */
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/RemoteUserAuthServlet.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/RemoteUserAuthServlet.java
index 8ef675a..54966f0 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/RemoteUserAuthServlet.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/RemoteUserAuthServlet.java
@@ -24,6 +24,7 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Enumeration;
+import java.util.List;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
@@ -47,9 +48,7 @@ import org.opensaml.profile.context.ProfileRequestContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.base.Predicates;
import com.google.common.base.Strings;
-import com.google.common.collect.Collections2;
/**
* Extracts authentication information from the request and returns it via the IdP's external authentication
@@ -129,7 +128,7 @@ public class RemoteUserAuthServlet extends HttpServlet {
* @param attributes list of request attributes to check
*/
public void setCheckAttributes(@Nonnull @NonnullElements final Collection<String> attributes) {
- checkAttributes = new ArrayList<>(Collections2.filter(attributes, Predicates.notNull()));
+ checkAttributes = List.copyOf(attributes);
}
/**
@@ -138,7 +137,7 @@ public class RemoteUserAuthServlet extends HttpServlet {
* @param headers list of request headers to check
*/
public void setCheckHeaders(@Nonnull @NonnullElements final Collection<String> headers) {
- checkHeaders = new ArrayList<>(Collections2.filter(headers, Predicates.notNull()));
+ checkHeaders = List.copyOf(headers);
}
/**
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ValidateCredentials.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ValidateCredentials.java
index 5046b42..5701e5a 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ValidateCredentials.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ValidateCredentials.java
@@ -44,9 +44,6 @@ import org.opensaml.profile.context.ProfileRequestContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.base.Predicates;
-import com.google.common.collect.Collections2;
-
/**
* An action that processes a list of {@link CredentialValidator} objects to produce an {@link AuthenticationResult}.
*
@@ -111,9 +108,8 @@ public class ValidateCredentials extends AbstractValidationAction implements War
*/
public void setValidators(@Nonnull @NonnullElements final List<CredentialValidator> validators) {
ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
- Constraint.isNotNull(validators, "Validators list cannot be null");
- credentialValidators = new ArrayList<>(Collections2.filter(validators, Predicates.notNull()));
+ credentialValidators = List.copyOf(Constraint.isNotNull(validators, "Validators list cannot be null"));
}
/**
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ValidateUserAgentAddress.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ValidateUserAgentAddress.java
index 18e43be..e71d332 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ValidateUserAgentAddress.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ValidateUserAgentAddress.java
@@ -18,10 +18,10 @@
package net.shibboleth.idp.authn.impl;
import java.net.InetAddress;
-import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import javax.annotation.Nonnull;
@@ -46,9 +46,7 @@ import net.shibboleth.utilities.java.support.net.IPRange;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.base.Predicates;
import com.google.common.base.Strings;
-import com.google.common.collect.Collections2;
/**
* An action that ensures that a user-agent address found within a {@link UserAgentContext}
@@ -97,7 +95,7 @@ public class ValidateUserAgentAddress extends AbstractValidationAction {
mappings = new HashMap<>(newMappings.size());
for (final Map.Entry<String,Collection<IPRange>> e : newMappings.entrySet()) {
if (!Strings.isNullOrEmpty(e.getKey())) {
- mappings.put(e.getKey(), new ArrayList<>(Collections2.filter(e.getValue(), Predicates.notNull())));
+ mappings.put(e.getKey(), List.copyOf(e.getValue()));
}
}
}
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/X500SubjectCanonicalization.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/X500SubjectCanonicalization.java
index 6a2d171..71761f4 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/X500SubjectCanonicalization.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/X500SubjectCanonicalization.java
@@ -18,7 +18,6 @@
package net.shibboleth.idp.authn.impl;
import java.security.cert.X509Certificate;
-import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Set;
@@ -48,8 +47,6 @@ import org.opensaml.security.x509.X509Support;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.base.Predicates;
-import com.google.common.collect.Collections2;
/**
* An action that operates on a {@link SubjectCanonicalizationContext} child of the current
@@ -106,9 +103,8 @@ public class X500SubjectCanonicalization extends AbstractSubjectCanonicalization
*/
public void setSubjectAltNameTypes(@Nonnull @NonnullElements final List<Integer> types) {
ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
- Constraint.isNotNull(types, "Type list cannot be null");
- subjectAltNameTypes = new ArrayList<>(Collections2.filter(types, Predicates.notNull()));
+ subjectAltNameTypes = List.copyOf(Constraint.isNotNull(types, "Type list cannot be null"));
}
/**
@@ -118,9 +114,9 @@ public class X500SubjectCanonicalization extends AbstractSubjectCanonicalization
*/
public void setObjectIds(@Nonnull @NonnullElements final List<String> ids) {
ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
- Constraint.isNotNull(ids, "OID list cannot be null");
- objectIds = new ArrayList<>(StringSupport.normalizeStringCollection(ids));
+ objectIds = List.copyOf(StringSupport.normalizeStringCollection(
+ Constraint.isNotNull(ids, "OID list cannot be null")));
}
/** {@inheritDoc} */
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/principal/impl/InexactPrincipalEvalPredicateFactory.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/principal/impl/InexactPrincipalEvalPredicateFactory.java
index 5eece19..39c527d 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/principal/impl/InexactPrincipalEvalPredicateFactory.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/principal/impl/InexactPrincipalEvalPredicateFactory.java
@@ -19,6 +19,7 @@ package net.shibboleth.idp.authn.principal.impl;
import java.security.Principal;
import java.util.Collection;
+import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -32,9 +33,7 @@ import net.shibboleth.utilities.java.support.annotation.constraint.Live;
import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
import net.shibboleth.utilities.java.support.logic.Constraint;
-import com.google.common.base.Predicates;
import com.google.common.base.Strings;
-import com.google.common.collect.Collections2;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap;
@@ -83,7 +82,7 @@ public class InexactPrincipalEvalPredicateFactory implements PrincipalEvalPredic
for (final Map.Entry<String,Collection<String>> e : rules.entrySet()) {
if (!Strings.isNullOrEmpty(e.getKey()) && e.getValue() != null) {
- matchingRules.putAll(e.getKey(), Collections2.filter(e.getValue(), Predicates.notNull()));
+ matchingRules.putAll(e.getKey(), List.copyOf(e.getValue()));
}
}
}
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/principal/impl/ProxyAuthenticationPrincipalSerializer.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/principal/impl/ProxyAuthenticationPrincipalSerializer.java
index 3bdb795..c96bb55 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/principal/impl/ProxyAuthenticationPrincipalSerializer.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/principal/impl/ProxyAuthenticationPrincipalSerializer.java
@@ -43,9 +43,6 @@ import javax.json.stream.JsonGenerator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.base.Predicates;
-import com.google.common.collect.Collections2;
-
import net.shibboleth.idp.authn.principal.AbstractPrincipalSerializer;
import net.shibboleth.idp.authn.principal.ProxyAuthenticationPrincipal;
import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
@@ -83,10 +80,7 @@ public class ProxyAuthenticationPrincipalSerializer extends AbstractPrincipalSer
@Nonnull @NotEmpty public String serialize(@Nonnull final Principal principal) throws IOException {
final JsonArrayBuilder arrayBuilder = getJsonArrayBuilder();
- for (final String aa : Collections2.filter(((ProxyAuthenticationPrincipal) principal).getAuthorities(),
- Predicates.notNull())) {
- arrayBuilder.add(aa);
- }
+ ((ProxyAuthenticationPrincipal) principal).getAuthorities().forEach(arrayBuilder::add);
final StringWriter sink = new StringWriter(32);
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/spnego/impl/KerberosSettings.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/spnego/impl/KerberosSettings.java
index c865935..b2d1dbb 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/spnego/impl/KerberosSettings.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/spnego/impl/KerberosSettings.java
@@ -17,15 +17,12 @@
package net.shibboleth.idp.authn.spnego.impl;
-import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
+import java.util.List;
import javax.annotation.Nonnull;
-import com.google.common.base.Predicates;
-import com.google.common.collect.Collections2;
-
import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
@@ -105,9 +102,8 @@ public class KerberosSettings extends AbstractInitializableComponent {
*/
public void setRealms(@Nonnull @NonnullElements final Collection<KerberosRealmSettings> realms) {
ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
- Constraint.isNotNull(realms, "The realms collection cannot be null");
- realmSettings = new ArrayList<>(Collections2.filter(realms, Predicates.notNull()));
+ realmSettings = List.copyOf(Constraint.isNotNull(realms, "The realms collection cannot be null"));
}
/**
diff --git a/idp-authn-impl/src/test/java/net/shibboleth/idp/authn/impl/DefaultAuthenticationResultSerializerTest.java b/idp-authn-impl/src/test/java/net/shibboleth/idp/authn/impl/DefaultAuthenticationResultSerializerTest.java
index b50ac45..a69bb96 100644
--- a/idp-authn-impl/src/test/java/net/shibboleth/idp/authn/impl/DefaultAuthenticationResultSerializerTest.java
+++ b/idp-authn-impl/src/test/java/net/shibboleth/idp/authn/impl/DefaultAuthenticationResultSerializerTest.java
@@ -37,7 +37,6 @@ import net.shibboleth.idp.authn.AuthenticationResult;
import net.shibboleth.idp.authn.principal.AuthenticationResultPrincipal;
import net.shibboleth.idp.authn.principal.IdPAttributePrincipal;
import net.shibboleth.idp.authn.principal.PasswordPrincipal;
-import net.shibboleth.idp.authn.principal.PrincipalSerializer;
import net.shibboleth.idp.authn.principal.ProxyAuthenticationPrincipal;
import net.shibboleth.idp.authn.principal.TestPrincipal;
import net.shibboleth.idp.authn.principal.UsernamePrincipal;
@@ -164,7 +163,7 @@ public class DefaultAuthenticationResultSerializerTest {
final PasswordPrincipalSerializer pwSerializer = new PasswordPrincipalSerializer();
pwSerializer.setDataSealer(sealer);
pwSerializer.initialize();
- serializer.setPrincipalSerializers(Collections.<PrincipalSerializer<String>>singletonList(pwSerializer));
+ serializer.setPrincipalSerializers(Collections.singletonList(pwSerializer));
serializer.initialize();
final AuthenticationResult result = createResult("test", new Subject());
@@ -205,7 +204,7 @@ public class DefaultAuthenticationResultSerializerTest {
@Test public void testLdap() throws Exception {
final LDAPPrincipalSerializer lpSerializer = new LDAPPrincipalSerializer();
- serializer.setPrincipalSerializers(Collections.<PrincipalSerializer<String>>singletonList(lpSerializer));
+ serializer.setPrincipalSerializers(Collections.singletonList(lpSerializer));
serializer.initialize();
final AuthenticationResult result = createResult("test", new Subject());
@@ -238,7 +237,7 @@ public class DefaultAuthenticationResultSerializerTest {
@Test public void testIdPAttribute() throws Exception {
final IdPAttributePrincipalSerializer attrSerializer = new IdPAttributePrincipalSerializer();
- serializer.setPrincipalSerializers(Collections.<PrincipalSerializer<String>>singletonList(attrSerializer));
+ serializer.setPrincipalSerializers(Collections.singletonList(attrSerializer));
serializer.initialize();
final AuthenticationResult result = createResult("test", new Subject());
@@ -271,7 +270,7 @@ public class DefaultAuthenticationResultSerializerTest {
@Test public void testProxyAuthentication() throws Exception {
final ProxyAuthenticationPrincipalSerializer proxySerializer = new ProxyAuthenticationPrincipalSerializer();
- serializer.setPrincipalSerializers(Collections.<PrincipalSerializer<String>>singletonList(proxySerializer));
+ serializer.setPrincipalSerializers(Collections.singletonList(proxySerializer));
serializer.initialize();
final AuthenticationResult result = createResult("test", new Subject());
diff --git a/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/config/impl/LoginConfiguration.java b/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/config/impl/LoginConfiguration.java
index f51c5c3..6dbba81 100644
--- a/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/config/impl/LoginConfiguration.java
+++ b/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/config/impl/LoginConfiguration.java
@@ -20,7 +20,7 @@ package net.shibboleth.idp.cas.config.impl;
import java.security.Principal;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.HashSet;
+import java.util.Collections;
import java.util.List;
import java.util.Set;
import java.util.function.Function;
@@ -32,7 +32,6 @@ import javax.annotation.Nullable;
import org.opensaml.profile.context.ProfileRequestContext;
import com.google.common.base.Predicates;
-import com.google.common.collect.Collections2;
import net.shibboleth.idp.authn.config.AuthenticationProfileConfiguration;
import net.shibboleth.idp.saml.authn.principal.AuthnContextClassRefPrincipal;
@@ -93,8 +92,12 @@ public class LoginConfiguration extends AbstractProtocolConfiguration
/** {@inheritDoc} */
@Nonnull @NonnullElements @NotLive @Unmodifiable public List<Principal> getDefaultAuthenticationMethods(
@Nullable final ProfileRequestContext profileRequestContext) {
- return CollectionSupport.buildImmutableList(
- defaultAuthenticationContextsLookupStrategy.apply(profileRequestContext));
+ final Collection<AuthnContextClassRefPrincipal> methods =
+ defaultAuthenticationContextsLookupStrategy.apply(profileRequestContext);
+ if (methods != null) {
+ return List.copyOf(methods);
+ }
+ return Collections.emptyList();
}
/**
@@ -105,8 +108,7 @@ public class LoginConfiguration extends AbstractProtocolConfiguration
public void setDefaultAuthenticationMethods(
@Nullable @NonnullElements final Collection<AuthnContextClassRefPrincipal> contexts) {
if (contexts != null) {
- defaultAuthenticationContextsLookupStrategy =
- FunctionSupport.constant(new ArrayList<>(Collections2.filter(contexts, Predicates.notNull())));
+ defaultAuthenticationContextsLookupStrategy = FunctionSupport.constant(List.copyOf(contexts));
} else {
defaultAuthenticationContextsLookupStrategy = FunctionSupport.constant(null);
}
@@ -125,7 +127,12 @@ public class LoginConfiguration extends AbstractProtocolConfiguration
/** {@inheritDoc} */
@Nonnull @NonnullElements @NotLive @Unmodifiable public Set<String> getAuthenticationFlows(
@Nullable final ProfileRequestContext profileRequestContext) {
- return CollectionSupport.buildImmutableSet(authenticationFlowsLookupStrategy.apply(profileRequestContext));
+
+ final Set<String> flows = authenticationFlowsLookupStrategy.apply(profileRequestContext);
+ if (flows != null) {
+ return Set.copyOf(flows);
+ }
+ return Collections.emptySet();
}
/**
@@ -136,7 +143,7 @@ public class LoginConfiguration extends AbstractProtocolConfiguration
public void setAuthenticationFlows(@Nullable @NonnullElements final Collection<String> flows) {
if (flows != null) {
authenticationFlowsLookupStrategy =
- FunctionSupport.constant(new HashSet<>(StringSupport.normalizeStringCollection(flows)));
+ FunctionSupport.constant(Set.copyOf(StringSupport.normalizeStringCollection(flows)));
} else {
authenticationFlowsLookupStrategy = FunctionSupport.constant(null);
}
@@ -185,7 +192,12 @@ public class LoginConfiguration extends AbstractProtocolConfiguration
/** {@inheritDoc} */
@Nonnull @NonnullElements @NotLive @Unmodifiable public List<String> getNameIDFormatPrecedence(
@Nullable final ProfileRequestContext profileRequestContext) {
- return CollectionSupport.buildImmutableList(nameIDFormatPrecedenceLookupStrategy.apply(profileRequestContext));
+
+ final Collection<String> formats = nameIDFormatPrecedenceLookupStrategy.apply(profileRequestContext);
+ if (formats != null) {
+ return List.copyOf(formats);
+ }
+ return Collections.emptyList();
}
/**
@@ -197,7 +209,7 @@ public class LoginConfiguration extends AbstractProtocolConfiguration
Constraint.isNotNull(formats, "List of formats cannot be null");
nameIDFormatPrecedenceLookupStrategy =
- FunctionSupport.constant(new ArrayList<>(StringSupport.normalizeStringCollection(formats)));
+ FunctionSupport.constant(List.copyOf(StringSupport.normalizeStringCollection(formats)));
}
/**
diff --git a/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/PrepareTicketValidationResponseAction.java b/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/PrepareTicketValidationResponseAction.java
index 2822a8b..7f7b1db 100644
--- a/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/PrepareTicketValidationResponseAction.java
+++ b/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/PrepareTicketValidationResponseAction.java
@@ -61,9 +61,6 @@ import org.opensaml.profile.context.ProfileRequestContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.base.Predicates;
-import com.google.common.collect.Collections2;
-
/**
* Prepares {@link TicketValidationResponse} for use in CAS protocol response views. Possible outcomes:
* <ul>
@@ -215,7 +212,7 @@ public class PrepareTicketValidationResponseAction extends
ActionSupport.buildEvent(profileRequestContext, IdPEventIds.UNABLE_ENCODE_ATTRIBUTE);
return;
}
- for (final IdPAttribute attribute : Collections2.filter(inputAttributes, Predicates.notNull())) {
+ for (final IdPAttribute attribute : inputAttributes) {
encodeAttribute(component.getComponent(), profileRequestContext, attribute, encodedAttributes);
}
} finally {
diff --git a/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/storage/impl/CollectionSerializer.java b/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/storage/impl/CollectionSerializer.java
index 724a30a..887c1f4 100644
--- a/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/storage/impl/CollectionSerializer.java
+++ b/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/storage/impl/CollectionSerializer.java
@@ -44,9 +44,6 @@ import org.opensaml.storage.StorageSerializer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.base.Predicates;
-import com.google.common.collect.Collections2;
-
/**
* Serializes a {@link Collection} of strings. <code>Null</code> elements and non-string values are ignored.
*/
@@ -74,14 +71,14 @@ public class CollectionSerializer extends AbstractInitializableComponent impleme
@Nonnull @NotEmpty public String serialize(@Nonnull final Collection<String> instance) throws IOException {
Constraint.isNotNull(instance, "Storage indexes cannot be null");
- final Collection<String> filteredInstance = Collections2.filter(instance, Predicates.notNull());
-
final StringWriter sink = new StringWriter(128);
try (final JsonGenerator gen = generatorFactory.createGenerator(sink)) {
gen.writeStartArray();
- for (final String element : filteredInstance) {
- gen.write(element);
+ for (final String element : instance) {
+ if (element != null) {
+ gen.write(element);
+ }
}
gen.writeEnd();
}
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list