[java-oidc-common] 04/05: Improve Javadoc
Phil Smart
philip.smart at jisc.ac.uk
Thu Oct 14 16:48:23 UTC 2021
This is an automated email from the git hooks/post-receive script.
philsmart pushed a commit to branch main
in repository java-oidc-common.
View the commit online:
http://git.shibboleth.net/view/?p=java-oidc-common.git;a=commit;h=e4847872b0a6fc9a52738559a9f52d3d102d43c5
commit e4847872b0a6fc9a52738559a9f52d3d102d43c5
Author: Phil Smart <philip.smart at jisc.ac.uk>
AuthorDate: Thu Oct 7 13:37:22 2021 +0100
Improve Javadoc
---
.../oidc/metadata/cache/MetadataCache.java | 4 +-
.../oidc/metadata/filter/MetadataFilter.java | 2 -
.../metadata/cache/impl/DefaultMetadataCache.java | 11 +++-
.../metadata/cache/impl/MetadataCacheBuilder.java | 69 ++++++++++++++++------
.../impl/OIDCProviderMetadataCacheFactoryBean.java | 1 -
.../impl/AbstractDynamicHTTPFetchingStrategy.java | 32 ++++++++++
.../impl/AbstractDynamicOIDCMetadataResolver.java | 8 ++-
.../impl/AbstractOIDCMetadataResolver.java | 9 ++-
.../impl/DynamicOIDCProviderMetadataResolver.java | 6 ++
.../HTTPProviderConfigurationFetchingStrategy.java | 35 ++++++++++-
.../DynamicOIDCProviderMetadataResolverTest.java | 4 --
11 files changed, 148 insertions(+), 33 deletions(-)
diff --git a/oidc-common-metadata-api/src/main/java/net/shibboleth/oidc/metadata/cache/MetadataCache.java b/oidc-common-metadata-api/src/main/java/net/shibboleth/oidc/metadata/cache/MetadataCache.java
index 3918eb0..92b3e90 100644
--- a/oidc-common-metadata-api/src/main/java/net/shibboleth/oidc/metadata/cache/MetadataCache.java
+++ b/oidc-common-metadata-api/src/main/java/net/shibboleth/oidc/metadata/cache/MetadataCache.java
@@ -10,9 +10,7 @@ import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
import net.shibboleth.utilities.java.support.resolver.CriteriaSet;
/**
- * A metadata cache.
- *
- * TODO: finish
+ * A cache for metadata.
*
* @param <T> The metadata identifier type.
* @param <U> The metadata type.
diff --git a/oidc-common-metadata-api/src/main/java/net/shibboleth/oidc/metadata/filter/MetadataFilter.java b/oidc-common-metadata-api/src/main/java/net/shibboleth/oidc/metadata/filter/MetadataFilter.java
index accb3dc..ba51212 100644
--- a/oidc-common-metadata-api/src/main/java/net/shibboleth/oidc/metadata/filter/MetadataFilter.java
+++ b/oidc-common-metadata-api/src/main/java/net/shibboleth/oidc/metadata/filter/MetadataFilter.java
@@ -3,8 +3,6 @@ package net.shibboleth.oidc.metadata.filter;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
-import org.opensaml.core.xml.XMLObject;
-
/**
* A metadata filter is used to process a metadata document after it has been acquired from a metadata source.
diff --git a/oidc-common-metadata-impl/src/main/java/net/shibboleth/oidc/metadata/cache/impl/DefaultMetadataCache.java b/oidc-common-metadata-impl/src/main/java/net/shibboleth/oidc/metadata/cache/impl/DefaultMetadataCache.java
index 37e3d22..4bc59a9 100644
--- a/oidc-common-metadata-impl/src/main/java/net/shibboleth/oidc/metadata/cache/impl/DefaultMetadataCache.java
+++ b/oidc-common-metadata-impl/src/main/java/net/shibboleth/oidc/metadata/cache/impl/DefaultMetadataCache.java
@@ -62,8 +62,15 @@ import net.shibboleth.utilities.java.support.resolver.CriteriaSet;
/**
- *
- * The executor service is shutdown when the {@link #doDestroy()} method is called.
+ * A default {@link MetadataCache} implementation. Supports the following:
+ * <ul>
+ * <li>A configurable backing store to store metadata.</li>
+ * <li>Read-write locking on individual metadata entries. Including optimistic reads.</li>
+ * <li>Synchronous metadata fetching for new metadata.</li>
+ * <li>Synchronous metadata fetching for stale (past refresh point) metadata.</li>
+ * <li>A background task to remove expired and idle metadata.</li>
+ * <li>Configuration of type specific functions via strategies.</li>
+ * </ul>
*
* @param <IdentifierType> the metadata identifier type
* @param <MetadataType> the metadata type
diff --git a/oidc-common-metadata-impl/src/main/java/net/shibboleth/oidc/metadata/cache/impl/MetadataCacheBuilder.java b/oidc-common-metadata-impl/src/main/java/net/shibboleth/oidc/metadata/cache/impl/MetadataCacheBuilder.java
index 4536833..d8da9a0 100644
--- a/oidc-common-metadata-impl/src/main/java/net/shibboleth/oidc/metadata/cache/impl/MetadataCacheBuilder.java
+++ b/oidc-common-metadata-impl/src/main/java/net/shibboleth/oidc/metadata/cache/impl/MetadataCacheBuilder.java
@@ -35,7 +35,7 @@ import net.shibboleth.utilities.java.support.logic.Constraint;
import net.shibboleth.utilities.java.support.resolver.CriteriaSet;
/**
- * Base metadata cache builder instance.
+ * Base metadata cache builder instance. Holds values common to all metadata cache implementations.
*
* @param <T> the metadata identifier/key
* @param <U> the metadata type.
@@ -62,28 +62,28 @@ public abstract class MetadataCacheBuilder<T,U> extends AbstractFactoryBean<Defa
@Nonnull private Duration initialCleanupTaskDelay;
/** Strategy used to extract an identifier from the given metadata.*/
- @Nullable private Function<U, T> identifierExtractionStrategy;
+ @Nullable private Function<@Nonnull U, @Nonnull T> identifierExtractionStrategy;
/** Strategy used to compute an expiration time. */
- @Nullable private BiFunction<U, Instant, Instant> metadataExpirationTimeStrategy;
+ @Nullable private BiFunction<@Nonnull U, @Nonnull Instant, @Nonnull Instant> metadataExpirationTimeStrategy;
/** Map criteria to identifiers to use as keys to the backing store.*/
- @Nullable private Function<CriteriaSet, T> criteriaToIdentifierStrategy;
+ @Nullable private Function<@Nonnull CriteriaSet, @Nonnull T> criteriaToIdentifierStrategy;
/** A strategy to filter metadata. */
- @Nonnull private BiFunction<U, MetadataFilterContext , U> metadataFilterStrategy;
+ @Nonnull private BiFunction<@Nonnull U, @Nonnull MetadataFilterContext , @Nonnull U> metadataFilterStrategy;
/**
* A hook that is executed just before a cache entry will been removed/invalidated/evicted.
- * The metadata list could be null, the identifier is never null.
+ * The metadata list could be {@literal null}, the identifier is never {@literal null}.
*/
- @Nullable private BiConsumer<List<U>, T> metadataBeforeRemovalHook;
+ @Nullable private BiConsumer<@Nullable List<U>, @Nonnull T> metadataBeforeRemovalHook;
/** Flag indicating whether idle entity data should be removed. */
private boolean removeIdleEntityData;
- protected MetadataCacheBuilder(){
+ protected MetadataCacheBuilder() {
//defaults
maxCacheDuration = Duration.ofHours(8);
minCacheDuration = Duration.ofMinutes(10);
@@ -114,8 +114,7 @@ public abstract class MetadataCacheBuilder<T,U> extends AbstractFactoryBean<Defa
*
* @param hook the hook to run.
*/
- public void setMetadataBeforeRemovalHook(
- @Nullable final BiConsumer<List<U>, T> hook) {
+ public void setMetadataBeforeRemovalHook(@Nullable final BiConsumer<List<U>, T> hook) {
metadataBeforeRemovalHook = hook;
}
@@ -131,10 +130,12 @@ public abstract class MetadataCacheBuilder<T,U> extends AbstractFactoryBean<Defa
/**
* Set the metadata filtering strategy.
*
+ * <p>Defaults to a no-op strategy.</p>
+ *
* @param strategy the metadata filtering strategy.
*/
- public void setMetadataFilterStrategy(@Nonnull final BiFunction<U, MetadataFilterContext, U> strategy) {
- this.metadataFilterStrategy = Constraint.isNotNull(strategy, "Metadata filter strategy can not be null");;
+ public void setMetadataFilterStrategy(@Nonnull final BiFunction<U, MetadataFilterContext, U> strategy) {
+ metadataFilterStrategy = Constraint.isNotNull(strategy,"Metadata filtering strategy can not be null");
}
/**
@@ -142,7 +143,7 @@ public abstract class MetadataCacheBuilder<T,U> extends AbstractFactoryBean<Defa
*
* @return the metadata filtering strategy
*/
- public BiFunction<U, MetadataFilterContext, U> getMetadataFilterStrategy() {
+ @Nonnull public BiFunction<U, MetadataFilterContext, U> getMetadataFilterStrategy() {
return metadataFilterStrategy;
}
@@ -151,7 +152,7 @@ public abstract class MetadataCacheBuilder<T,U> extends AbstractFactoryBean<Defa
*
* @return Returns the initialCleanupTaskDelay.
*/
- protected Duration getInitialCleanupTaskDelay() {
+ @Nonnull protected Duration getInitialCleanupTaskDelay() {
return initialCleanupTaskDelay;
}
@@ -176,31 +177,67 @@ public abstract class MetadataCacheBuilder<T,U> extends AbstractFactoryBean<Defa
removeIdleEntityData = flag;
}
+ /**
+ * Should idle metadata be removed?
+ *
+ * @return if idle metadata should be resolved.
+ */
protected boolean isRemoveIdleEntityData() {
return removeIdleEntityData;
}
+ /**
+ * Set the identifier extraction strategy.
+ *
+ * @param strategy the strategy to set.
+ */
public void setIdentifierExtractionStrategy(@Nonnull final Function<U, T> strategy) {
identifierExtractionStrategy = Constraint.isNotNull(strategy, "Strategy can not be null");
}
+
+ /**
+ * Get the identifier extraction strategy.
+ *
+ * @return strategy the strategy.
+ */
@Nullable protected Function<U, T> getIdentifierExtractionStrategy() {
return identifierExtractionStrategy;
}
+ /**
+ * Set the metadata expiration time strategy.
+ *
+ * @param strategy the strategy.
+ */
public void setMetadataExpirationTimeStrategy(
@Nonnull final BiFunction<U, Instant, Instant> strategy) {
metadataExpirationTimeStrategy = Constraint.isNotNull(strategy, "Strategy can not be null");
}
+ /**
+ * Get the metadata expiration time strategy.
+ *
+ * @return the strategy.
+ */
@Nullable protected BiFunction<U, Instant, Instant> getMetadataExpirationTimeStrategy() {
return metadataExpirationTimeStrategy;
}
+ /**
+ * Set the criteria set to identifier lookup strategy.
+ *
+ * @param strategy the strategy to set.
+ */
public void setCriteriaToIdentifierStrategy(@Nonnull final Function<CriteriaSet, T> strategy) {
criteriaToIdentifierStrategy = Constraint.isNotNull(strategy,"Criteria to identifier strategy can not be null");
}
+ /**
+ * Get the criteria set to identifier lookup strategy.
+ *
+ * @param strategy the strategy.
+ */
@Nullable protected Function<CriteriaSet, T> getCriteriaToIdentifierStrategy() {
return criteriaToIdentifierStrategy;
}
@@ -251,7 +288,6 @@ public abstract class MetadataCacheBuilder<T,U> extends AbstractFactoryBean<Defa
* @param max the maximum entity data idle time
*/
public void setMaxIdleEntityData(@Nonnull final Duration max) {
-
Constraint.isNotNull(max, "Max idle time cannot be null");
Constraint.isFalse(max.isNegative(), "Max idle time cannot be negative");
@@ -276,8 +312,7 @@ public abstract class MetadataCacheBuilder<T,U> extends AbstractFactoryBean<Defa
*
* @param duration the maximum cache duration
*/
- public void setMaxCacheDuration(@Nonnull final Duration duration) {
-
+ public void setMaxCacheDuration(@Nonnull final Duration duration) {
Constraint.isNotNull(duration, "Duration cannot be null");
Constraint.isFalse(duration.isNegative(), "Duration cannot be negative");
diff --git a/oidc-common-metadata-impl/src/main/java/net/shibboleth/oidc/metadata/cache/impl/OIDCProviderMetadataCacheFactoryBean.java b/oidc-common-metadata-impl/src/main/java/net/shibboleth/oidc/metadata/cache/impl/OIDCProviderMetadataCacheFactoryBean.java
index 8d14d94..51ca0ab 100644
--- a/oidc-common-metadata-impl/src/main/java/net/shibboleth/oidc/metadata/cache/impl/OIDCProviderMetadataCacheFactoryBean.java
+++ b/oidc-common-metadata-impl/src/main/java/net/shibboleth/oidc/metadata/cache/impl/OIDCProviderMetadataCacheFactoryBean.java
@@ -10,7 +10,6 @@ import net.shibboleth.oidc.metadata.impl.DefaultBackingStore;
*/
public class OIDCProviderMetadataCacheFactoryBean extends MetadataCacheBuilder<Issuer, OIDCProviderMetadata> {
- //TODO raw type?
@SuppressWarnings("rawtypes")
@Override
public Class<DefaultMetadataCache> getObjectType() {
diff --git a/oidc-common-metadata-impl/src/main/java/net/shibboleth/oidc/metadata/impl/AbstractDynamicHTTPFetchingStrategy.java b/oidc-common-metadata-impl/src/main/java/net/shibboleth/oidc/metadata/impl/AbstractDynamicHTTPFetchingStrategy.java
index 405b968..2803734 100644
--- a/oidc-common-metadata-impl/src/main/java/net/shibboleth/oidc/metadata/impl/AbstractDynamicHTTPFetchingStrategy.java
+++ b/oidc-common-metadata-impl/src/main/java/net/shibboleth/oidc/metadata/impl/AbstractDynamicHTTPFetchingStrategy.java
@@ -1,6 +1,7 @@
package net.shibboleth.oidc.metadata.impl;
import java.io.IOException;
+import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Set;
@@ -27,12 +28,20 @@ import com.google.common.net.MediaType;
import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
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.LazySet;
import net.shibboleth.utilities.java.support.component.AbstractIdentifiableInitializableComponent;
+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 net.shibboleth.utilities.java.support.primitive.StringSupport;
import net.shibboleth.utilities.java.support.resolver.ResolverException;
+/**
+ * Abstract strategy for fetching metadata dynamically over HTTP.
+ *
+ * @param <CriteriaType> the type of criteria used to build the request.
+ * @param <MetadataType> the metadata type.
+ */
public abstract class AbstractDynamicHTTPFetchingStrategy<CriteriaType, MetadataType>
extends AbstractIdentifiableInitializableComponent implements Function<CriteriaType, MetadataType> {
@@ -72,6 +81,7 @@ public abstract class AbstractDynamicHTTPFetchingStrategy<CriteriaType, Metadata
* Constructor.
*
* @param client the instance of {@link HttpClient} used to fetch remote OIDC metadata
+ * @param handler the response handler used to convert the HTTP response to the metadata type.
*/
protected AbstractDynamicHTTPFetchingStrategy(@Nonnull final HttpClient client,
@Nonnull final ResponseHandler<MetadataType> handler) {
@@ -79,6 +89,28 @@ public abstract class AbstractDynamicHTTPFetchingStrategy<CriteriaType, Metadata
httpClient = Constraint.isNotNull(client, "HTTP Client can not be null");
}
+ /** {@inheritDoc} */
+ @Override
+ protected void doInitialize() throws ComponentInitializationException {
+ super.doInitialize();
+
+ if (getSupportedContentTypes() == null) {
+ setSupportedContentTypes(Arrays.asList(DEFAULT_CONTENT_TYPES));
+ }
+
+ if (! getSupportedContentTypes().isEmpty()) {
+ supportedContentTypesValue = StringSupport.listToStringValue(getSupportedContentTypes(), ", ");
+ supportedMediaTypes = new LazySet<>();
+ for (final String contentType : getSupportedContentTypes()) {
+ supportedMediaTypes.add(MediaType.parse(contentType));
+ }
+ } else {
+ supportedMediaTypes = Collections.emptySet();
+ }
+
+ log.debug("{} Supported content types are: {}", getId(), getSupportedContentTypes());
+ }
+
/**
* Set an instance of {@link HttpClientSecurityParameters} which provides various parameters to influence
* the security behavior of the HttpClient instance.
diff --git a/oidc-common-metadata-impl/src/main/java/net/shibboleth/oidc/metadata/impl/AbstractDynamicOIDCMetadataResolver.java b/oidc-common-metadata-impl/src/main/java/net/shibboleth/oidc/metadata/impl/AbstractDynamicOIDCMetadataResolver.java
index 291595b..643949c 100644
--- a/oidc-common-metadata-impl/src/main/java/net/shibboleth/oidc/metadata/impl/AbstractDynamicOIDCMetadataResolver.java
+++ b/oidc-common-metadata-impl/src/main/java/net/shibboleth/oidc/metadata/impl/AbstractDynamicOIDCMetadataResolver.java
@@ -56,7 +56,13 @@ public abstract class AbstractDynamicOIDCMetadataResolver<IdentifierType, Metada
@NonnullAfterInit private final Function<CriteriaSet, MetadataType> metadataFetchingStrategy;
- /** Constructor.*/
+ /**
+ *
+ * Constructor.
+ *
+ * @param metadataCache the cache to hold metadata.
+ * @param fetchingStrategy the strategy used to fetch metadata.
+ */
protected AbstractDynamicOIDCMetadataResolver(
@Nonnull final MetadataCache<MetadataType> metadataCache,
@Nonnull final Function<CriteriaSet, MetadataType> fetchingStrategy) {
diff --git a/oidc-common-metadata-impl/src/main/java/net/shibboleth/oidc/metadata/impl/AbstractOIDCMetadataResolver.java b/oidc-common-metadata-impl/src/main/java/net/shibboleth/oidc/metadata/impl/AbstractOIDCMetadataResolver.java
index dfe1689..e98e6ef 100644
--- a/oidc-common-metadata-impl/src/main/java/net/shibboleth/oidc/metadata/impl/AbstractOIDCMetadataResolver.java
+++ b/oidc-common-metadata-impl/src/main/java/net/shibboleth/oidc/metadata/impl/AbstractOIDCMetadataResolver.java
@@ -45,8 +45,13 @@ import net.shibboleth.utilities.java.support.resolver.CriterionPredicateRegistry
import net.shibboleth.utilities.java.support.resolver.ResolverException;
import net.shibboleth.utilities.java.support.resolver.ResolverSupport;
-
-// TODO would also need to implement a generic metadata resolver interface.
+/**
+ * An abstract metadata resolver which supports any type of metadata.
+ *
+ * @param <MetadataIdentifier> the type used to identify the metadata
+ * @param <MetadataType> the metadata type
+ */
+// TODO Would need to remove OIDC from the name as is generic - but confusing clash with opensaml.
public abstract class AbstractOIDCMetadataResolver<MetadataIdentifier, MetadataType>
extends AbstractIdentifiableInitializableComponent implements OIDCMetadataResolver<MetadataType> {
diff --git a/oidc-common-metadata-impl/src/main/java/net/shibboleth/oidc/metadata/impl/DynamicOIDCProviderMetadataResolver.java b/oidc-common-metadata-impl/src/main/java/net/shibboleth/oidc/metadata/impl/DynamicOIDCProviderMetadataResolver.java
index 05be062..7c7a32f 100644
--- a/oidc-common-metadata-impl/src/main/java/net/shibboleth/oidc/metadata/impl/DynamicOIDCProviderMetadataResolver.java
+++ b/oidc-common-metadata-impl/src/main/java/net/shibboleth/oidc/metadata/impl/DynamicOIDCProviderMetadataResolver.java
@@ -33,6 +33,12 @@ public class DynamicOIDCProviderMetadataResolver
extends AbstractDynamicOIDCMetadataResolver<Issuer, OIDCProviderMetadata>
implements ProviderMetadataResolver {
+ /**
+ * Constructor.
+ *
+ * @param metadataCache the cache to hold metadata.
+ * @param fetchingStrategy the strategy used to fetch metadata.
+ */
protected DynamicOIDCProviderMetadataResolver(
@Nonnull final MetadataCache<OIDCProviderMetadata> metadataCache,
@Nonnull final Function<CriteriaSet, OIDCProviderMetadata> fetchingStrategy) {
diff --git a/oidc-common-metadata-impl/src/main/java/net/shibboleth/oidc/metadata/impl/HTTPProviderConfigurationFetchingStrategy.java b/oidc-common-metadata-impl/src/main/java/net/shibboleth/oidc/metadata/impl/HTTPProviderConfigurationFetchingStrategy.java
index 4e37204..d9a3eeb 100644
--- a/oidc-common-metadata-impl/src/main/java/net/shibboleth/oidc/metadata/impl/HTTPProviderConfigurationFetchingStrategy.java
+++ b/oidc-common-metadata-impl/src/main/java/net/shibboleth/oidc/metadata/impl/HTTPProviderConfigurationFetchingStrategy.java
@@ -26,12 +26,17 @@ import com.nimbusds.openid.connect.sdk.op.OIDCProviderMetadata;
import net.shibboleth.oidc.metadata.criterion.IssuerIDCriterion;
import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
+import net.shibboleth.utilities.java.support.component.ComponentSupport;
+import net.shibboleth.utilities.java.support.logic.Constraint;
import net.shibboleth.utilities.java.support.net.MediaTypeSupport;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
import net.shibboleth.utilities.java.support.resolver.CriteriaSet;
import net.shibboleth.utilities.java.support.resolver.ResolverException;
-
+/**
+ * A dynamic strategy for fetching OpenID Connect Provider Configuration Metadata from its well-known location
+ * (OpenID Connect Discovery 1.0, section 4).
+ */
@ThreadSafe //? is a singleton?
public class HTTPProviderConfigurationFetchingStrategy
extends AbstractDynamicHTTPFetchingStrategy<CriteriaSet, OIDCProviderMetadata> {
@@ -58,6 +63,34 @@ public class HTTPProviderConfigurationFetchingStrategy
wellKnownPath = DEFAULT_OPENID_PROVIDER_WELL_KNOWN_PATH;
wellKnownLocationCompositionStrategy = new DefaultWellKnownPathCompositionStrategy();
}
+
+ /**
+ * Set the well-known URL path component.
+ *
+ * <p>Defaults to {@value DEFAULT_OPENID_PROVIDER_WELL_KNOWN_PATH}.</p>
+ *
+ * @param path the path.
+ */
+ public void setWellKnownPath(@Nonnull @NotEmpty final String path) {
+ ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+ ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+
+ wellKnownPath = Constraint.isNotEmpty(path, "Well-know path can not be null");
+ }
+
+ /**
+ * Set the well-known location composition strategy.
+ *
+ * @param strategy the strategy to set.
+ */
+ public void setWellKnownLocationCompositionStrategy(@Nonnull final
+ BiFunction<Issuer, String, String> strategy) {
+ ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+ ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+
+ wellKnownLocationCompositionStrategy =
+ Constraint.isNotNull(strategy, "Well known location composition strategy can not be null");
+ }
@Override
protected String buildRequestURL(@Nonnull final CriteriaSet criteria) {
diff --git a/oidc-common-metadata-impl/src/test/java/net/shibboleth/oidc/metadata/impl/DynamicOIDCProviderMetadataResolverTest.java b/oidc-common-metadata-impl/src/test/java/net/shibboleth/oidc/metadata/impl/DynamicOIDCProviderMetadataResolverTest.java
index 92fcc3f..a43ce2a 100644
--- a/oidc-common-metadata-impl/src/test/java/net/shibboleth/oidc/metadata/impl/DynamicOIDCProviderMetadataResolverTest.java
+++ b/oidc-common-metadata-impl/src/test/java/net/shibboleth/oidc/metadata/impl/DynamicOIDCProviderMetadataResolverTest.java
@@ -9,8 +9,6 @@ import static org.testng.Assert.assertNull;
import static org.testng.Assert.assertTrue;
import java.io.IOException;
-import java.net.URI;
-import java.net.URISyntaxException;
import java.time.Duration;
import java.time.Instant;
import java.util.List;
@@ -32,11 +30,9 @@ import org.testng.annotations.Test;
import com.nimbusds.oauth2.sdk.ParseException;
import com.nimbusds.oauth2.sdk.id.Issuer;
-import com.nimbusds.openid.connect.sdk.SubjectType;
import com.nimbusds.openid.connect.sdk.op.OIDCProviderMetadata;
import net.shibboleth.oidc.metadata.AbstractEvaluableMetadataCriterion;
-import net.shibboleth.oidc.metadata.EvaluableMetadataCriterion;
import net.shibboleth.oidc.metadata.MetadataManagementData;
import net.shibboleth.oidc.metadata.cache.impl.DefaultMetadataCache;
import net.shibboleth.oidc.metadata.cache.impl.MetadataCacheBuilder;
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list