[java-identity-provider] branch master updated: IDP-1516 - Reduce Guava dependence
Scott Cantor
cantor.2 at osu.edu
Mon Oct 28 20:40:26 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=6599f541467499da47986696fe37324aa25bebd9
The following commit(s) were added to refs/heads/master by this push:
new 6599f54 IDP-1516 - Reduce Guava dependence
6599f54 is described below
commit 6599f541467499da47986696fe37324aa25bebd9
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Mon Oct 28 20:40:21 2019 -0400
IDP-1516 - Reduce Guava dependence
https://issues.shibboleth.net/jira/browse/IDP-1516
---
.../profile/logic/DynamicAttributePredicate.java | 5 ++-
.../relyingparty/RelyingPartyConfiguration.java | 15 +++++---
.../impl/PopulateProfileInterceptorContext.java | 7 ++--
.../factory/StaticExplicitKeyFactoryBean.java | 26 ++++++++------
.../spring/factory/StaticPKIXFactoryBean.java | 9 ++---
.../resource/impl/HTTPResourceFactoryBean.java | 19 +++++-----
.../NameIDCanonicalizationFlowDescriptor.java | 19 +++++-----
.../config/BrowserSSOProfileConfiguration.java | 41 ++++++++++++++--------
.../config/BrowserSSOProfileConfiguration.java | 41 ++++++++++++++--------
.../profile/delegation/DelegationContext.java | 15 +++-----
...tributeSourcedSAML1NameIdentifierGenerator.java | 7 +---
.../impl/AttributeSourcedSAML2NameIDGenerator.java | 7 +---
.../impl/PersistentSAML2NameIDGenerator.java | 7 +---
.../impl/AddAttributeStatementToAssertion.java | 7 ++--
.../impl/AddAttributeStatementToAssertion.java | 7 ++--
.../profile/impl/ProcessRequestedAuthnContext.java | 4 +--
16 files changed, 116 insertions(+), 120 deletions(-)
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/logic/DynamicAttributePredicate.java b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/logic/DynamicAttributePredicate.java
index d31f89b..ab6686b 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/profile/logic/DynamicAttributePredicate.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/profile/logic/DynamicAttributePredicate.java
@@ -17,9 +17,7 @@
package net.shibboleth.idp.profile.logic;
-import com.google.common.base.Predicates;
import com.google.common.collect.ArrayListMultimap;
-import com.google.common.collect.Collections2;
import com.google.common.collect.ListMultimap;
import net.shibboleth.idp.attribute.IdPAttribute;
@@ -39,6 +37,7 @@ import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.util.Collection;
+import java.util.List;
import java.util.Map;
import java.util.function.Function;
@@ -73,7 +72,7 @@ public class DynamicAttributePredicate extends AbstractAttributePredicate {
attributeFunctionMap.clear();
for (final Map.Entry<String,Collection<Function<ProfileRequestContext,String>>> entry : map.entrySet()) {
final String attributeId = StringSupport.trimOrNull(entry.getKey());
- attributeFunctionMap.putAll(attributeId, Collections2.filter(entry.getValue(), Predicates.notNull()));
+ attributeFunctionMap.putAll(attributeId, List.copyOf(entry.getValue()));
}
}
diff --git a/idp-profile-api/src/main/java/net/shibboleth/idp/relyingparty/RelyingPartyConfiguration.java b/idp-profile-api/src/main/java/net/shibboleth/idp/relyingparty/RelyingPartyConfiguration.java
index 2559014..d233005 100644
--- a/idp-profile-api/src/main/java/net/shibboleth/idp/relyingparty/RelyingPartyConfiguration.java
+++ b/idp-profile-api/src/main/java/net/shibboleth/idp/relyingparty/RelyingPartyConfiguration.java
@@ -18,7 +18,9 @@
package net.shibboleth.idp.relyingparty;
import java.util.Collection;
+import java.util.Collections;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.function.Predicate;
@@ -31,7 +33,6 @@ import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElemen
import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
import net.shibboleth.utilities.java.support.annotation.constraint.NotLive;
import net.shibboleth.utilities.java.support.annotation.constraint.Unmodifiable;
-import net.shibboleth.utilities.java.support.collection.CollectionSupport;
import net.shibboleth.utilities.java.support.component.AbstractIdentifiableInitializableComponent;
import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
import net.shibboleth.utilities.java.support.component.ComponentSupport;
@@ -45,7 +46,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.common.base.Predicates;
-import com.google.common.collect.Collections2;
/** The configuration that applies to a given relying party. */
public class RelyingPartyConfiguration extends AbstractIdentifiableInitializableComponent implements
@@ -152,7 +152,12 @@ public class RelyingPartyConfiguration extends AbstractIdentifiableInitializable
*/
@Nonnull @NonnullElements @Unmodifiable @NotLive public Map<String,ProfileConfiguration> getProfileConfigurations(
@Nullable final ProfileRequestContext profileRequestContext) {
- return CollectionSupport.buildImmutableMap(profileConfigurationsLookupStrategy.apply(profileRequestContext));
+
+ final Map<String,ProfileConfiguration> map = profileConfigurationsLookupStrategy.apply(profileRequestContext);
+ if (map != null) {
+ return Map.copyOf(map);
+ }
+ return Collections.emptyMap();
}
/**
@@ -188,13 +193,13 @@ public class RelyingPartyConfiguration extends AbstractIdentifiableInitializable
profileConfigurationsLookupStrategy = FunctionSupport.constant(null);
} else {
final HashMap<String,ProfileConfiguration> map = new HashMap<>();
- for (final ProfileConfiguration config : Collections2.filter(configs, Predicates.notNull())) {
+ for (final ProfileConfiguration config : List.copyOf(configs)) {
final String trimmedId =
Constraint.isNotNull(StringSupport.trimOrNull(config.getId()),
"ID of profile configuration class " + config.getClass().getName() + " cannot be null");
map.put(trimmedId, config);
}
- profileConfigurationsLookupStrategy = FunctionSupport.constant(map);
+ profileConfigurationsLookupStrategy = FunctionSupport.constant(Map.copyOf(map));
}
}
diff --git a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/interceptor/impl/PopulateProfileInterceptorContext.java b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/interceptor/impl/PopulateProfileInterceptorContext.java
index 0474838..68eda25 100644
--- a/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/interceptor/impl/PopulateProfileInterceptorContext.java
+++ b/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/interceptor/impl/PopulateProfileInterceptorContext.java
@@ -17,9 +17,9 @@
package net.shibboleth.idp.profile.interceptor.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;
@@ -40,8 +40,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.common.base.Optional;
-import com.google.common.base.Predicates;
-import com.google.common.collect.Collections2;
import com.google.common.collect.Iterables;
/**
@@ -77,9 +75,8 @@ public class PopulateProfileInterceptorContext extends AbstractProfileIntercepto
*/
public void setAvailableFlows(@Nonnull @NonnullElements final Collection<ProfileInterceptorFlowDescriptor> 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"));
}
/**
diff --git a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/factory/StaticExplicitKeyFactoryBean.java b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/factory/StaticExplicitKeyFactoryBean.java
index 30b83af..01b116f 100644
--- a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/factory/StaticExplicitKeyFactoryBean.java
+++ b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/factory/StaticExplicitKeyFactoryBean.java
@@ -26,6 +26,7 @@ import java.util.Collection;
import java.util.Collections;
import java.util.List;
+import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import org.cryptacular.EncodingException;
@@ -42,9 +43,6 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.FatalBeanException;
import org.springframework.core.io.Resource;
-import com.google.common.base.Predicates;
-import com.google.common.collect.Collections2;
-
import net.shibboleth.ext.spring.factory.AbstractComponentAwareFactoryBean;
import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
@@ -55,8 +53,8 @@ import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElemen
*/
public class StaticExplicitKeyFactoryBean extends AbstractComponentAwareFactoryBean<ExplicitKeyTrustEngine> {
- /** log. */
- private Logger log = LoggerFactory.getLogger(StaticExplicitKeyFactoryBean.class);
+ /** Class logger. */
+ @Nonnull private Logger log = LoggerFactory.getLogger(StaticExplicitKeyFactoryBean.class);
/** The resources to be turned into keys. */
private List<Resource> keyResources;
@@ -66,8 +64,8 @@ public class StaticExplicitKeyFactoryBean extends AbstractComponentAwareFactoryB
/** Constructor. */
public StaticExplicitKeyFactoryBean() {
- keyResources = Collections.<Resource>emptyList();
- certificateResources = Collections.<Resource>emptyList();
+ keyResources = Collections.emptyList();
+ certificateResources = Collections.emptyList();
}
/**
@@ -76,7 +74,7 @@ public class StaticExplicitKeyFactoryBean extends AbstractComponentAwareFactoryB
* @param keys the resources
*/
public void setPublicKeys(@Nullable final List<Resource> keys) {
- keyResources = keys != null ? keys : Collections.<Resource>emptyList();
+ keyResources = keys != null ? keys : Collections.emptyList();
}
/**
@@ -85,7 +83,7 @@ public class StaticExplicitKeyFactoryBean extends AbstractComponentAwareFactoryB
* @param certs the resources
*/
public void setCertificates(@Nullable final List<Resource> certs) {
- certificateResources = certs != null ? certs : Collections.<Resource>emptyList();
+ certificateResources = certs != null ? certs : Collections.emptyList();
}
/**
@@ -109,9 +107,15 @@ public class StaticExplicitKeyFactoryBean extends AbstractComponentAwareFactoryB
for (final Resource f : certificateResources) {
try(final InputStream is = f.getInputStream()) {
final Collection<X509Certificate> raw = X509Support.decodeCertificates(is);
- for (final X509Certificate x : Collections2.filter(raw, Predicates.notNull())) {
- credentials.add(new BasicX509Credential(x));
+ if (raw != null) {
+ raw.forEach(x -> {
+ if (x != null) {
+ credentials.add(new BasicX509Credential(x));
+ }
+ }
+ );
}
+
} catch (final CertificateException | IOException e) {
log.error("Could not decode certificate from {}", f.getDescription(), e);
throw new FatalBeanException("Could not decode certificate from: " + f.getDescription(), e);
diff --git a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/factory/StaticPKIXFactoryBean.java b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/factory/StaticPKIXFactoryBean.java
index 9c4a933..dc73614 100644
--- a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/factory/StaticPKIXFactoryBean.java
+++ b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/factory/StaticPKIXFactoryBean.java
@@ -26,14 +26,12 @@ import java.security.cert.X509Certificate;
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 javax.annotation.Nonnull;
import javax.annotation.Nullable;
-import org.opensaml.security.x509.PKIXValidationInformation;
import org.opensaml.security.x509.X509Support;
import org.opensaml.security.x509.impl.BasicPKIXValidationInformation;
import org.opensaml.security.x509.impl.PKIXX509CredentialTrustEngine;
@@ -43,8 +41,6 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.FatalBeanException;
import org.springframework.core.io.Resource;
-import com.google.common.base.Predicates;
-import com.google.common.collect.Collections2;
import net.shibboleth.ext.spring.factory.AbstractComponentAwareFactoryBean;
import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
@@ -135,7 +131,7 @@ public class StaticPKIXFactoryBean extends AbstractComponentAwareFactoryBean<PKI
*/
public void setTrustedNames(@Nullable @NonnullElements final Collection<String> names) {
if (names != null) {
- trustedNames = new HashSet<>(Collections2.filter(names, Predicates.notNull()));
+ trustedNames = Set.copyOf(names);
} else {
trustedNames = null;
}
@@ -192,8 +188,7 @@ public class StaticPKIXFactoryBean extends AbstractComponentAwareFactoryBean<PKI
new BasicPKIXValidationInformation(getCertificates(), getCRLs(), verifyDepth);
final StaticPKIXValidationInformationResolver resolver =
- new StaticPKIXValidationInformationResolver(
- Collections.<PKIXValidationInformation>singletonList(info), trustedNames, checkNames);
+ new StaticPKIXValidationInformationResolver(Collections.singletonList(info), trustedNames, checkNames);
if (checkNames) {
return new PKIXX509CredentialTrustEngine(resolver);
diff --git a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/resource/impl/HTTPResourceFactoryBean.java b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/resource/impl/HTTPResourceFactoryBean.java
index ea7855f..8c515db 100644
--- a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/resource/impl/HTTPResourceFactoryBean.java
+++ b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/resource/impl/HTTPResourceFactoryBean.java
@@ -53,9 +53,6 @@ import org.springframework.beans.FatalBeanException;
import org.springframework.beans.factory.config.AbstractFactoryBean;
import org.springframework.core.io.Resource;
-import com.google.common.base.Predicates;
-import com.google.common.collect.Collections2;
-
import net.shibboleth.ext.spring.resource.FileBackedHTTPResource;
import net.shibboleth.ext.spring.resource.HTTPResource;
import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
@@ -99,8 +96,8 @@ public class HTTPResourceFactoryBean extends AbstractFactoryBean<HTTPResource> {
/** Constructor. */
public HTTPResourceFactoryBean() {
- keyResources = Collections.<Resource>emptyList();
- certificateResources = Collections.<Resource>emptyList();
+ keyResources = Collections.emptyList();
+ certificateResources = Collections.emptyList();
}
/**
@@ -145,7 +142,7 @@ public class HTTPResourceFactoryBean extends AbstractFactoryBean<HTTPResource> {
* @param keys the resources
*/
public void setPublicKeys(@Nullable final List<Resource> keys) {
- keyResources = keys != null ? keys : Collections.<Resource>emptyList();
+ keyResources = keys != null ? keys : Collections.emptyList();
}
/**
@@ -154,7 +151,7 @@ public class HTTPResourceFactoryBean extends AbstractFactoryBean<HTTPResource> {
* @param certs the resources
*/
public void setCertificates(@Nullable final List<Resource> certs) {
- certificateResources = certs != null ? certs : Collections.<Resource>emptyList();
+ certificateResources = certs != null ? certs : Collections.emptyList();
}
/**
@@ -197,8 +194,12 @@ public class HTTPResourceFactoryBean extends AbstractFactoryBean<HTTPResource> {
for (final Resource f : certificateResources) {
try(final InputStream is = f.getInputStream()) {
final Collection<X509Certificate> raw = X509Support.decodeCertificates(is);
- for (final X509Certificate x : Collections2.filter(raw, Predicates.notNull())) {
- credentials.add(new BasicX509Credential(x));
+ if (raw != null) {
+ raw.forEach(x -> {
+ if (x != null) {
+ credentials.add(new BasicX509Credential(x));
+ }
+ });
}
} catch (final CertificateException | IOException e) {
log.error("Could not decode certificate from {}", f.getDescription(), e);
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/nameid/NameIDCanonicalizationFlowDescriptor.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/nameid/NameIDCanonicalizationFlowDescriptor.java
index 51d7dd8..daa7af2 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/nameid/NameIDCanonicalizationFlowDescriptor.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/nameid/NameIDCanonicalizationFlowDescriptor.java
@@ -19,17 +19,16 @@ package net.shibboleth.idp.saml.nameid;
import java.util.Collection;
import java.util.Collections;
-import java.util.HashSet;
import java.util.Set;
import javax.annotation.Nonnull;
import net.shibboleth.idp.authn.SubjectCanonicalizationFlowDescriptor;
import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
-import net.shibboleth.utilities.java.support.collection.CollectionSupport;
+import net.shibboleth.utilities.java.support.annotation.constraint.NotLive;
+import net.shibboleth.utilities.java.support.annotation.constraint.Unmodifiable;
import net.shibboleth.utilities.java.support.logic.Constraint;
-
-import com.google.common.base.Predicates;
+import net.shibboleth.utilities.java.support.primitive.StringSupport;
/**
* A class used to describe flow descriptors for {@link net.shibboleth.idp.saml.authn.principal.NameIDPrincipal} and
@@ -39,7 +38,7 @@ import com.google.common.base.Predicates;
public class NameIDCanonicalizationFlowDescriptor extends SubjectCanonicalizationFlowDescriptor {
/** Store Set of acceptable formats. */
- @Nonnull private Set<String> formats;
+ @Nonnull @NonnullElements private Set<String> formats;
/** Constructor. */
public NameIDCanonicalizationFlowDescriptor() {
@@ -51,7 +50,7 @@ public class NameIDCanonicalizationFlowDescriptor extends SubjectCanonicalizatio
*
* @return Returns the formats. Never empty after initialization.
*/
- @Nonnull @NonnullElements public Collection<String> getFormats() {
+ @Nonnull @NonnullElements @Unmodifiable @NotLive public Collection<String> getFormats() {
return formats;
}
@@ -60,11 +59,9 @@ public class NameIDCanonicalizationFlowDescriptor extends SubjectCanonicalizatio
*
* @param theFormats The formats to set.
*/
- public void setFormats(@Nonnull final Collection<String> theFormats) {
- Constraint.isNotNull(theFormats, "Format collection cannot be null");
-
- formats = new HashSet<>(theFormats.size());
- CollectionSupport.addIf(formats, theFormats, Predicates.notNull());
+ public void setFormats(@Nonnull @NonnullElements final Collection<String> theFormats) {
+ formats = Set.copyOf(StringSupport.normalizeStringCollection(
+ Constraint.isNotNull(theFormats, "Format collection cannot be null")));
}
}
\ No newline at end of file
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml1/profile/config/BrowserSSOProfileConfiguration.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml1/profile/config/BrowserSSOProfileConfiguration.java
index 45b2222..cf46788 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml1/profile/config/BrowserSSOProfileConfiguration.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml1/profile/config/BrowserSSOProfileConfiguration.java
@@ -18,9 +18,8 @@
package net.shibboleth.idp.saml.saml1.profile.config;
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 +31,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.AuthenticationMethodPrincipal;
@@ -40,7 +38,6 @@ import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElemen
import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
import net.shibboleth.utilities.java.support.annotation.constraint.NotLive;
import net.shibboleth.utilities.java.support.annotation.constraint.Unmodifiable;
-import net.shibboleth.utilities.java.support.collection.CollectionSupport;
import net.shibboleth.utilities.java.support.logic.Constraint;
import net.shibboleth.utilities.java.support.logic.FunctionSupport;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
@@ -186,8 +183,12 @@ public class BrowserSSOProfileConfiguration extends AbstractSAML1ArtifactAwarePr
/** {@inheritDoc} */
@Nonnull @NonnullElements @NotLive @Unmodifiable public List<Principal> getDefaultAuthenticationMethods(
@Nullable final ProfileRequestContext profileRequestContext) {
- return CollectionSupport.buildImmutableList(
- defaultAuthenticationMethodsLookupStrategy.apply(profileRequestContext));
+ final Collection<AuthenticationMethodPrincipal> methods =
+ defaultAuthenticationMethodsLookupStrategy.apply(profileRequestContext);
+ if (methods != null) {
+ return List.copyOf(methods);
+ }
+ return Collections.emptyList();
}
/**
@@ -199,8 +200,7 @@ public class BrowserSSOProfileConfiguration extends AbstractSAML1ArtifactAwarePr
@Nullable @NonnullElements final Collection<AuthenticationMethodPrincipal> methods) {
if (methods != null) {
- defaultAuthenticationMethodsLookupStrategy =
- FunctionSupport.constant(new ArrayList<>(Collections2.filter(methods, Predicates.notNull())));
+ defaultAuthenticationMethodsLookupStrategy = FunctionSupport.constant(List.copyOf(methods));
} else {
defaultAuthenticationMethodsLookupStrategy = FunctionSupport.constant(null);
}
@@ -221,7 +221,12 @@ public class BrowserSSOProfileConfiguration extends AbstractSAML1ArtifactAwarePr
/** {@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();
}
/**
@@ -232,7 +237,7 @@ public class BrowserSSOProfileConfiguration extends AbstractSAML1ArtifactAwarePr
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);
}
@@ -253,7 +258,11 @@ public class BrowserSSOProfileConfiguration extends AbstractSAML1ArtifactAwarePr
/** {@inheritDoc} */
@Nonnull @NonnullElements @NotLive @Unmodifiable public List<String> getPostAuthenticationFlows(
@Nullable final ProfileRequestContext profileRequestContext) {
- return CollectionSupport.buildImmutableList(postAuthenticationFlowsLookupStrategy.apply(profileRequestContext));
+ final Collection<String> flows = postAuthenticationFlowsLookupStrategy.apply(profileRequestContext);
+ if (flows != null) {
+ return List.copyOf(flows);
+ }
+ return Collections.emptyList();
}
/**
@@ -264,7 +273,7 @@ public class BrowserSSOProfileConfiguration extends AbstractSAML1ArtifactAwarePr
public void setPostAuthenticationFlows(@Nullable @NonnullElements final Collection<String> flows) {
if (flows != null) {
postAuthenticationFlowsLookupStrategy =
- FunctionSupport.constant(new ArrayList<>(StringSupport.normalizeStringCollection(flows)));
+ FunctionSupport.constant(List.copyOf(StringSupport.normalizeStringCollection(flows)));
} else {
postAuthenticationFlowsLookupStrategy = FunctionSupport.constant(null);
}
@@ -285,7 +294,11 @@ public class BrowserSSOProfileConfiguration extends AbstractSAML1ArtifactAwarePr
/** {@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();
}
/**
@@ -297,7 +310,7 @@ public class BrowserSSOProfileConfiguration extends AbstractSAML1ArtifactAwarePr
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-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/BrowserSSOProfileConfiguration.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/BrowserSSOProfileConfiguration.java
index 439f645..532b3b2 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/BrowserSSOProfileConfiguration.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/BrowserSSOProfileConfiguration.java
@@ -19,9 +19,8 @@ package net.shibboleth.idp.saml.saml2.profile.config;
import java.security.Principal;
import java.time.Duration;
-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;
@@ -37,7 +36,6 @@ import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElemen
import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
import net.shibboleth.utilities.java.support.annotation.constraint.NotLive;
import net.shibboleth.utilities.java.support.annotation.constraint.Unmodifiable;
-import net.shibboleth.utilities.java.support.collection.CollectionSupport;
import net.shibboleth.utilities.java.support.logic.Constraint;
import net.shibboleth.utilities.java.support.logic.FunctionSupport;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
@@ -46,7 +44,6 @@ import org.opensaml.profile.context.ProfileRequestContext;
import org.opensaml.saml.saml2.core.AuthnContextComparisonTypeEnumeration;
import com.google.common.base.Predicates;
-import com.google.common.collect.Collections2;
/** Configuration support for SAML 2 Browser SSO. */
public class BrowserSSOProfileConfiguration extends AbstractSAML2ArtifactAwareProfileConfiguration
@@ -503,8 +500,12 @@ public class BrowserSSOProfileConfiguration extends AbstractSAML2ArtifactAwarePr
/** {@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();
}
/**
@@ -515,8 +516,7 @@ public class BrowserSSOProfileConfiguration extends AbstractSAML2ArtifactAwarePr
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);
}
@@ -537,7 +537,11 @@ public class BrowserSSOProfileConfiguration extends AbstractSAML2ArtifactAwarePr
/** {@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();
}
/**
@@ -548,7 +552,7 @@ public class BrowserSSOProfileConfiguration extends AbstractSAML2ArtifactAwarePr
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);
}
@@ -569,7 +573,11 @@ public class BrowserSSOProfileConfiguration extends AbstractSAML2ArtifactAwarePr
/** {@inheritDoc} */
@Nonnull @NonnullElements @NotLive @Unmodifiable public List<String> getPostAuthenticationFlows(
@Nullable final ProfileRequestContext profileRequestContext) {
- return CollectionSupport.buildImmutableList(postAuthenticationFlowsLookupStrategy.apply(profileRequestContext));
+ final Collection<String> flows = postAuthenticationFlowsLookupStrategy.apply(profileRequestContext);
+ if (flows != null) {
+ return List.copyOf(flows);
+ }
+ return Collections.emptyList();
}
/**
@@ -580,7 +588,7 @@ public class BrowserSSOProfileConfiguration extends AbstractSAML2ArtifactAwarePr
public void setPostAuthenticationFlows(@Nullable @NonnullElements final Collection<String> flows) {
if (flows != null) {
postAuthenticationFlowsLookupStrategy =
- FunctionSupport.constant(new ArrayList<>(StringSupport.normalizeStringCollection(flows)));
+ FunctionSupport.constant(List.copyOf(StringSupport.normalizeStringCollection(flows)));
} else {
postAuthenticationFlowsLookupStrategy = FunctionSupport.constant(null);
}
@@ -601,7 +609,12 @@ public class BrowserSSOProfileConfiguration extends AbstractSAML2ArtifactAwarePr
/** {@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();
}
/**
@@ -613,7 +626,7 @@ public class BrowserSSOProfileConfiguration extends AbstractSAML2ArtifactAwarePr
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-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/delegation/DelegationContext.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/delegation/DelegationContext.java
index 68e0529..39d2597 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/delegation/DelegationContext.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/saml2/profile/delegation/DelegationContext.java
@@ -17,7 +17,6 @@
package net.shibboleth.idp.saml.saml2.profile.delegation;
-import java.util.ArrayList;
import java.util.List;
import javax.annotation.Nonnull;
@@ -29,9 +28,6 @@ import net.shibboleth.utilities.java.support.logic.Constraint;
import org.opensaml.messaging.context.BaseContext;
import org.opensaml.security.credential.Credential;
-import com.google.common.base.Predicates;
-import com.google.common.collect.Collections2;
-
/**
* Context which holds data relevant to the issuance of a delegated {@link org.opensaml.saml.saml2.core.Assertion}.
*/
@@ -41,13 +37,13 @@ public class DelegationContext extends BaseContext {
private boolean issuingDelegatedAssertion;
/** Status of whether the relying party has requested issuance of a delegated assertion token. */
- private DelegationRequest delegationRequested;
+ @Nonnull private DelegationRequest delegationRequested;
/**
* The relying party credentials which will be included in the assertion's
* {@link org.opensaml.saml.saml2.core.KeyInfoConfirmationDataType}.
*/
- private List<Credential> subjectConfirmationCredentials;
+ @Nullable @NonnullElements private List<Credential> subjectConfirmationCredentials;
/** Constructor. */
@@ -87,7 +83,7 @@ public class DelegationContext extends BaseContext {
*
* @param requested the delegation request status
*/
- public void setDelegationRequested(final DelegationRequest requested) {
+ public void setDelegationRequested(@Nonnull final DelegationRequest requested) {
delegationRequested = Constraint.isNotNull(requested, "DelegationRequest was null");
}
@@ -107,12 +103,11 @@ public class DelegationContext extends BaseContext {
*
* @param credentials the confirmation credentials
*/
- public void setSubjectConfirmationCredentials(
- @Nullable @NonnullElements final List<Credential> credentials) {
+ public void setSubjectConfirmationCredentials(@Nullable @NonnullElements final List<Credential> credentials) {
if (credentials == null) {
subjectConfirmationCredentials = null;
} else {
- subjectConfirmationCredentials = new ArrayList<>(Collections2.filter(credentials, Predicates.notNull()));
+ subjectConfirmationCredentials = List.copyOf(credentials);
}
}
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/AttributeSourcedSAML1NameIdentifierGenerator.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/AttributeSourcedSAML1NameIdentifierGenerator.java
index 99cbe6f..6585974 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/AttributeSourcedSAML1NameIdentifierGenerator.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/AttributeSourcedSAML1NameIdentifierGenerator.java
@@ -17,7 +17,6 @@
package net.shibboleth.idp.saml.nameid.impl;
-import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@@ -53,9 +52,6 @@ import org.opensaml.saml.saml1.profile.SAML1ObjectSupport;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.base.Predicates;
-import com.google.common.collect.Collections2;
-
/**
* Generator for {@link NameIdentifier} objects based on {@link IdPAttribute} data.
*/
@@ -120,9 +116,8 @@ public class AttributeSourcedSAML1NameIdentifierGenerator extends AbstractSAML1N
*/
public void setAttributeSourceIds(@Nonnull @NonnullElements final List<String> ids) {
ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
- Constraint.isNotNull(ids, "Attribute ID collection cannot be null");
- attributeSourceIds = new ArrayList<>(Collections2.filter(ids, Predicates.notNull()));
+ attributeSourceIds = List.copyOf(Constraint.isNotNull(ids, "Attribute ID collection cannot be null"));
}
/**
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/AttributeSourcedSAML2NameIDGenerator.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/AttributeSourcedSAML2NameIDGenerator.java
index 0389215..fa67d23 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/AttributeSourcedSAML2NameIDGenerator.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/AttributeSourcedSAML2NameIDGenerator.java
@@ -17,7 +17,6 @@
package net.shibboleth.idp.saml.nameid.impl;
-import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@@ -52,9 +51,6 @@ import org.opensaml.saml.saml2.profile.SAML2ObjectSupport;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.base.Predicates;
-import com.google.common.collect.Collections2;
-
/**
* Generator for {@link NameID} objects based on {@link IdPAttribute} data.
*/
@@ -119,9 +115,8 @@ public class AttributeSourcedSAML2NameIDGenerator extends AbstractSAML2NameIDGen
*/
public void setAttributeSourceIds(@Nonnull @NonnullElements final List<String> ids) {
ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
- Constraint.isNotNull(ids, "Attribute ID collection cannot be null");
- attributeSourceIds = new ArrayList<>(Collections2.filter(ids, Predicates.notNull()));
+ attributeSourceIds = List.copyOf(Constraint.isNotNull(ids, "Attribute ID collection cannot be null"));
}
/**
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/PersistentSAML2NameIDGenerator.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/PersistentSAML2NameIDGenerator.java
index 5c4e665..3250f2e 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/PersistentSAML2NameIDGenerator.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/PersistentSAML2NameIDGenerator.java
@@ -18,7 +18,6 @@
package net.shibboleth.idp.saml.nameid.impl;
import java.io.IOException;
-import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@@ -56,9 +55,6 @@ import org.opensaml.saml.saml2.profile.AbstractSAML2NameIDGenerator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.base.Predicates;
-import com.google.common.collect.Collections2;
-
/**
* Generator for "persistent" Format {@link NameID} objects that provides a source/seed ID based on {@link IdPAttribute}
* data.
@@ -132,9 +128,8 @@ public class PersistentSAML2NameIDGenerator extends AbstractSAML2NameIDGenerator
*/
public void setAttributeSourceIds(@Nonnull @NonnullElements final List<String> ids) {
ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
- Constraint.isNotNull(ids, "Attribute ID collection cannot be null");
- attributeSourceIds = new ArrayList<>(Collections2.filter(ids, Predicates.notNull()));
+ attributeSourceIds = List.copyOf(Constraint.isNotNull(ids, "Attribute ID collection cannot be null"));
}
/**
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml1/profile/impl/AddAttributeStatementToAssertion.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml1/profile/impl/AddAttributeStatementToAssertion.java
index 23543d3..eb460ed 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml1/profile/impl/AddAttributeStatementToAssertion.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml1/profile/impl/AddAttributeStatementToAssertion.java
@@ -48,9 +48,6 @@ import org.opensaml.saml.saml1.profile.SAML1ActionSupport;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.base.Predicates;
-import com.google.common.collect.Collections2;
-
/**
* Action that builds an {@link AttributeStatement} and adds it to an {@link Assertion} returned by a lookup
* strategy, by default in the {@link ProfileRequestContext#getOutboundMessageContext()}.
@@ -142,8 +139,8 @@ public class AddAttributeStatementToAssertion extends BaseAddAttributeStatementT
if (component == null) {
throw new AttributeEncodingException("Attribute transoding service unavailable");
}
- for (final IdPAttribute attribute : Collections2.filter(attributes, Predicates.notNull())) {
- if (!attribute.getValues().isEmpty()) {
+ for (final IdPAttribute attribute : attributes) {
+ if (attribute != null && !attribute.getValues().isEmpty()) {
encodeAttribute(component.getComponent(), profileRequestContext, attribute, encodedAttributes);
}
}
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/AddAttributeStatementToAssertion.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/AddAttributeStatementToAssertion.java
index 8228b64..d331d07 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/AddAttributeStatementToAssertion.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/AddAttributeStatementToAssertion.java
@@ -48,9 +48,6 @@ import org.opensaml.saml.saml2.profile.SAML2ActionSupport;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.base.Predicates;
-import com.google.common.collect.Collections2;
-
/**
* Action that builds an {@link AttributeStatement} and adds it to an {@link Assertion} returned by a lookup
* strategy, by default in the {@link ProfileRequestContext#getOutboundMessageContext()}.
@@ -144,8 +141,8 @@ public class AddAttributeStatementToAssertion extends BaseAddAttributeStatementT
if (component == null) {
throw new AttributeEncodingException("Attribute transoding service unavailable");
}
- for (final IdPAttribute attribute : Collections2.filter(attributes, Predicates.notNull())) {
- if (!attribute.getValues().isEmpty()) {
+ for (final IdPAttribute attribute : attributes) {
+ if (attributes != null && !attribute.getValues().isEmpty()) {
encodeAttribute(component.getComponent(), profileRequestContext, attribute, encodedAttributes);
}
}
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/ProcessRequestedAuthnContext.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/ProcessRequestedAuthnContext.java
index b1dfbad..0d12dc2 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/ProcessRequestedAuthnContext.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/impl/ProcessRequestedAuthnContext.java
@@ -21,7 +21,6 @@ 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.Function;
@@ -136,8 +135,7 @@ public class ProcessRequestedAuthnContext extends AbstractAuthenticationAction {
if (trimmed.isEmpty()) {
ignoredContexts = Collections.emptySet();
} else {
- ignoredContexts = new HashSet<>(trimmed.size());
- ignoredContexts.addAll(trimmed);
+ ignoredContexts = Set.copyOf(trimmed);
}
}
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list