[java-oidc-common] 02/02: Moved setting of remoteJwkSetCache and keyFetchInterval into constructor.
Henri Mikkonen
henri.mikkonen at iki.fi
Tue Jun 20 11:38:42 UTC 2023
This is an automated email from the git hooks/post-receive script.
hjmikkon 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=a89112a0403a9d89181f16095125c10d4fdfa4cc
commit a89112a0403a9d89181f16095125c10d4fdfa4cc
Author: Henri Mikkonen <henri.mikkonen at iki.fi>
AuthorDate: Tue Jun 20 14:34:42 2023 +0300
Moved setting of remoteJwkSetCache and keyFetchInterval into constructor.
This way we ensure that the remote key set cache is initialized by the time
the method 'resolveFromSource' runs.
---
.../impl/ClientInformationCredentialResolver.java | 57 +++++++++++-----------
.../impl/ProviderMetadataCredentialResolver.java | 57 +++++++++++-----------
.../ClientInformationCredentialResolverTest.java | 3 +-
.../ProviderMetadataCredentialResolverTest.java | 3 +-
4 files changed, 59 insertions(+), 61 deletions(-)
diff --git a/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/credential/impl/ClientInformationCredentialResolver.java b/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/credential/impl/ClientInformationCredentialResolver.java
index 76edac7..9edd372 100644
--- a/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/credential/impl/ClientInformationCredentialResolver.java
+++ b/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/credential/impl/ClientInformationCredentialResolver.java
@@ -40,10 +40,10 @@ import net.shibboleth.oidc.security.credential.ClientSecretCredential;
import net.shibboleth.oidc.security.credential.DefaultClientSecretCredential;
import net.shibboleth.oidc.security.credential.JOSEObjectCredentialResolver;
import net.shibboleth.oidc.security.jose.criterion.ClientInformationCriterion;
+import net.shibboleth.shared.annotation.ParameterName;
import net.shibboleth.shared.annotation.constraint.NonnullAfterInit;
import net.shibboleth.shared.annotation.constraint.Positive;
import net.shibboleth.shared.component.ComponentInitializationException;
-import net.shibboleth.shared.component.ComponentSupport;
import net.shibboleth.shared.component.InitializableComponent;
import net.shibboleth.shared.logic.Constraint;
import net.shibboleth.shared.primitive.StringSupport;
@@ -69,10 +69,35 @@ public class ClientInformationCredentialResolver extends BasicJOSEObjectCredenti
private boolean isInitialized;
/** The cache for remote JWK key sets. */
- @NonnullAfterInit private RemoteJwkSetCache remoteJwkSetCache;
+ @NonnullAfterInit private final RemoteJwkSetCache remoteJwkSetCache;
/** The remote key refresh interval. Default value: 30 minutes. */
- @Positive private Duration keyFetchInterval = Duration.ofMinutes(30);
+ @Positive private final Duration keyFetchInterval;
+
+ /**
+ * Constructor.
+ *
+ * @param jwkSetCache The cache for remote JWK key sets.
+ */
+ public ClientInformationCredentialResolver(
+ @Nonnull final @ParameterName(name="remoteJwkSetCache") RemoteJwkSetCache jwkSetCache) {
+ this(jwkSetCache, Duration.ofMinutes(30));
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param jwkSetCache The cache for remote JWK key sets.
+ * @param interval The remote key refresh interval
+ */
+ public ClientInformationCredentialResolver(
+ @Nonnull final @ParameterName(name="remoteJwkSetCache") RemoteJwkSetCache jwkSetCache,
+ @Nonnull @Positive @ParameterName(name="keyFetchInterval") Duration interval) {
+
+ remoteJwkSetCache = Constraint.isNotNull(jwkSetCache, "The remote JWK set cache cannot be null");
+ Constraint.isFalse(interval == null || interval.isNegative(), "Remote key refresh must be greater than 0");
+ keyFetchInterval = interval;
+ }
/** {@inheritDoc} */
@Override
@@ -83,39 +108,13 @@ public class ClientInformationCredentialResolver extends BasicJOSEObjectCredenti
/** {@inheritDoc} */
@Override
public void initialize() throws ComponentInitializationException {
-
- if (remoteJwkSetCache == null) {
- throw new ComponentInitializationException("Remote JWK Set Cache can not be null");
- }
isInitialized = true;
}
- /**
- * Set the remote key refresh interval.
- *
- * @param interval What to set.
- */
- public void setKeyFetchInterval(@Positive final Duration interval) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
- Constraint.isFalse(interval == null || interval.isNegative(), "Remote key refresh must be greater than 0");
- keyFetchInterval = interval;
- }
-
- /**
- * Set the cache for remote JWK key sets.
- *
- * @param jwkSetCache What to set.
- */
- public void setRemoteJwkSetCache(final RemoteJwkSetCache jwkSetCache) {
- remoteJwkSetCache = Constraint.isNotNull(jwkSetCache, "The remote JWK set cache cannot be null");
- }
-
/** {@inheritDoc} */
@Override
protected Iterable<Credential> resolveFromSource(@Nonnull final CriteriaSet criteriaSet) throws ResolverException {
- ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
Constraint.isNotNull(criteriaSet, "CriteriaSet was null");
if (criteriaSet.contains(ClientInformationCriterion.class)) {
diff --git a/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/credential/impl/ProviderMetadataCredentialResolver.java b/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/credential/impl/ProviderMetadataCredentialResolver.java
index 474230c..5ad2173 100644
--- a/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/credential/impl/ProviderMetadataCredentialResolver.java
+++ b/oidc-common-crypto-impl/src/main/java/net/shibboleth/oidc/security/credential/impl/ProviderMetadataCredentialResolver.java
@@ -35,10 +35,10 @@ import com.nimbusds.openid.connect.sdk.op.OIDCProviderMetadata;
import net.shibboleth.oidc.jwk.RemoteJwkSetCache;
import net.shibboleth.oidc.security.jose.criterion.ProviderMetadataCriterion;
+import net.shibboleth.shared.annotation.ParameterName;
import net.shibboleth.shared.annotation.constraint.NonnullAfterInit;
import net.shibboleth.shared.annotation.constraint.Positive;
import net.shibboleth.shared.component.ComponentInitializationException;
-import net.shibboleth.shared.component.ComponentSupport;
import net.shibboleth.shared.component.InitializableComponent;
import net.shibboleth.shared.logic.Constraint;
import net.shibboleth.shared.primitive.StringSupport;
@@ -63,11 +63,36 @@ public class ProviderMetadataCredentialResolver extends BasicJOSEObjectCredentia
private boolean isInitialized;
/** The cache for remote JWK key sets. */
- @NonnullAfterInit private RemoteJwkSetCache remoteJwkSetCache;
+ @NonnullAfterInit private final RemoteJwkSetCache remoteJwkSetCache;
/** The remote key refresh interval. Default value: 30 minutes. */
- @Positive private Duration keyFetchInterval = Duration.ofMinutes(30);
-
+ @Positive private final Duration keyFetchInterval;
+
+ /**
+ * Constructor.
+ *
+ * @param jwkSetCache The cache for remote JWK key sets.
+ */
+ public ProviderMetadataCredentialResolver(
+ @Nonnull final @ParameterName(name="remoteJwkSetCache") RemoteJwkSetCache jwkSetCache) {
+ this(jwkSetCache, Duration.ofMinutes(30));
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param jwkSetCache The cache for remote JWK key sets.
+ * @param interval The remote key refresh interval
+ */
+ public ProviderMetadataCredentialResolver(
+ @Nonnull final @ParameterName(name="remoteJwkSetCache") RemoteJwkSetCache jwkSetCache,
+ @Nonnull @Positive @ParameterName(name="keyFetchInterval") Duration interval) {
+
+ remoteJwkSetCache = Constraint.isNotNull(jwkSetCache, "The remote JWK set cache cannot be null");
+ Constraint.isFalse(interval == null || interval.isNegative(), "Remote key refresh must be greater than 0");
+ keyFetchInterval = interval;
+ }
+
/** {@inheritDoc} */
@Override
public boolean isInitialized() {
@@ -77,36 +102,12 @@ public class ProviderMetadataCredentialResolver extends BasicJOSEObjectCredentia
/** {@inheritDoc} */
@Override
public void initialize() throws ComponentInitializationException {
-
- if (remoteJwkSetCache == null) {
- throw new ComponentInitializationException("Remote JWK Set Cache can not be null");
- }
isInitialized = true;
}
- /**
- * Set the remote key refresh interval.
- *
- * @param interval What to set.
- */
- public void setKeyFetchInterval(@Positive final Duration interval) {
- Constraint.isFalse(interval == null || interval.isNegative(), "Remote key refresh must be greater than 0");
- keyFetchInterval = interval;
- }
-
- /**
- * Set the cache for remote JWK key sets.
- *
- * @param jwkSetCache What to set.
- */
- public void setRemoteJwkSetCache(final RemoteJwkSetCache jwkSetCache) {
- remoteJwkSetCache = Constraint.isNotNull(jwkSetCache, "The remote JWK set cache cannot be null");
- }
-
@Override
protected Iterable<Credential> resolveFromSource(@Nonnull final CriteriaSet criteriaSet) throws ResolverException {
- ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
Constraint.isNotNull(criteriaSet, "CriteriaSet was null");
if (criteriaSet.contains(ProviderMetadataCriterion.class)) {
diff --git a/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/credential/impl/ClientInformationCredentialResolverTest.java b/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/credential/impl/ClientInformationCredentialResolverTest.java
index 60654f8..7287ee0 100644
--- a/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/credential/impl/ClientInformationCredentialResolverTest.java
+++ b/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/credential/impl/ClientInformationCredentialResolverTest.java
@@ -57,8 +57,7 @@ public class ClientInformationCredentialResolverTest extends BaseMetadataCredent
@Override
protected ClientInformationCredentialResolver constructResolver(final RemoteJwkSetCache cache) {
- resolver = new ClientInformationCredentialResolver();
- resolver.setRemoteJwkSetCache(cache);
+ resolver = new ClientInformationCredentialResolver(cache);
return resolver;
}
diff --git a/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/credential/impl/ProviderMetadataCredentialResolverTest.java b/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/credential/impl/ProviderMetadataCredentialResolverTest.java
index 880a556..211ac6e 100644
--- a/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/credential/impl/ProviderMetadataCredentialResolverTest.java
+++ b/oidc-common-crypto-impl/src/test/java/net/shibboleth/oidc/security/credential/impl/ProviderMetadataCredentialResolverTest.java
@@ -48,8 +48,7 @@ public class ProviderMetadataCredentialResolverTest extends BaseMetadataCredenti
@Override
protected ProviderMetadataCredentialResolver constructResolver(final RemoteJwkSetCache cache) {
- resolver = new ProviderMetadataCredentialResolver();
- resolver.setRemoteJwkSetCache(cache);
+ resolver = new ProviderMetadataCredentialResolver(cache);
return resolver;
}
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list