[java-idp-plugin-oidc-op-oidfed] 01/02: Use TrustChainTestUtil from oidfed-common-testing.
Codeberg
noreply at shibboleth.net
Thu Sep 17 11:31:14 UTC 2026
This is an automated email from the git hooks/post-receive script.
codeberg pushed a commit to branch main
in repository java-idp-plugin-oidc-op-oidfed.
View the commit online:
https://codeberg.org/Shibboleth/java-idp-plugin-oidc-op-oidfed/commit/070b94a3b24dbdc6d5ee284b796f4eb0fb042ac2
commit 070b94a3b24dbdc6d5ee284b796f4eb0fb042ac2
Author: Henri Mikkonen <henri.mikkonen at iki.fi>
AuthorDate: Thu Sep 17 14:14:44 2026 +0300
Use TrustChainTestUtil from oidfed-common-testing.
---
.../plugin/oidc/op/oidfed/TrustChainTestUtil.java | 164 ---------------------
.../AuthorizeFlowAutomaticRegistrationTest.java | 2 +-
.../flow/oidfed/EntityConfigurationFlowTest.java | 2 +-
.../profile/flow/oidfed/RegistrationFlowTest.java | 2 +-
.../profile/flow/oidfed/ResolveEntityFlowTest.java | 2 +-
.../UserInfoFlowAutomaticRegistrationTest.java | 2 +-
.../EntityConfigurationMetadataCacheTest.java | 2 +-
.../oidfed/cache/TrustChainMetadataCacheTest.java | 2 +-
8 files changed, 7 insertions(+), 171 deletions(-)
diff --git a/idp-oidfed-op-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/oidfed/TrustChainTestUtil.java b/idp-oidfed-op-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/oidfed/TrustChainTestUtil.java
deleted file mode 100644
index f19ccdf..0000000
--- a/idp-oidfed-op-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/oidfed/TrustChainTestUtil.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.shibboleth.idp.plugin.oidc.op.oidfed;
-
-import java.text.ParseException;
-import java.time.Instant;
-import java.util.Date;
-import java.util.List;
-
-import javax.annotation.Nonnull;
-
-import org.testng.Assert;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.module.SimpleAbstractTypeResolver;
-import com.fasterxml.jackson.databind.module.SimpleModule;
-import com.nimbusds.jose.JOSEException;
-import com.nimbusds.jose.JOSEObjectType;
-import com.nimbusds.jose.JWSAlgorithm;
-import com.nimbusds.jose.JWSHeader;
-import com.nimbusds.jose.crypto.ECDSASigner;
-import com.nimbusds.jose.crypto.RSASSASigner;
-import com.nimbusds.jose.jwk.JWK;
-import com.nimbusds.jose.jwk.JWKSet;
-import com.nimbusds.jose.jwk.KeyUse;
-import com.nimbusds.jose.jwk.RSAKey;
-import com.nimbusds.jose.jwk.gen.RSAKeyGenerator;
-import com.nimbusds.jwt.JWTClaimsSet;
-import com.nimbusds.jwt.SignedJWT;
-
-import net.shibboleth.oidc.metadata.policy.MetadataPolicy;
-import net.shibboleth.oidfed.metadata.EntityStatement;
-import net.shibboleth.oidfed.metadata.impl.EntityConfigurationImpl;
-import net.shibboleth.oidfed.metadata.impl.SubordinateStatementImpl;
-import net.shibboleth.oidfed.metadata.jackson.InstantDeserializer;
-import net.shibboleth.oidfed.metadata.jackson.JWKSetDeserializer;
-import net.shibboleth.oidfed.metadata.payload.claim.Metadata;
-import net.shibboleth.oidfed.metadata.payload.claim.impl.MetadataImpl;
-import net.shibboleth.oidfed.metadata.policy.FederationMetadataPolicyDeserializer;
-
-/**
- * Various utility methods for testing trust chains.
- */
-public class TrustChainTestUtil {
-
- public static List<EntityStatement<?>> chainWithIntermediate(final EntityStatement<?> leaf, final String anchorId,
- final String intermediateId) {
- try {
- final RSAKey anchorKey = new RSAKeyGenerator(2048)
- .keyID("mockTrustAnchorKey")
- .keyUse(KeyUse.SIGNATURE)
- .generate();
- final RSAKey intermediateKey = new RSAKeyGenerator(2048)
- .keyID("mockIntermediateKey")
- .keyUse(KeyUse.SIGNATURE)
- .generate();
- final EntityStatement<?> trustAnchor = trustAnchor(JWSAlgorithm.RS256, anchorKey, anchorId);
- final EntityStatement<?> intermediateStatement = entityStatement(JWSAlgorithm.RS256, anchorKey,
- new JWTClaimsSet.Builder()
- .subject(intermediateId)
- .issueTime(new Date())
- .issuer(anchorId)
- .build());
- final EntityStatement<?> leafSubordinateStatement = entityStatement(JWSAlgorithm.RS256, intermediateKey,
- new JWTClaimsSet.Builder(leaf.getJwt().getJWTClaimsSet())
- .subject(leaf.getSubject())
- .issueTime(new Date())
- .issuer(intermediateId)
- .build());
- return List.of(leaf, leafSubordinateStatement, intermediateStatement, trustAnchor);
- } catch (final JOSEException | ParseException e) {
- Assert.fail("Could not construct trust chain", e);
- }
- return null;
- }
-
- public static EntityStatement<?> trustAnchor(final JWSAlgorithm algorithm, final JWK jwk, final String entityId) {
- return entityStatement(algorithm, jwk,
- new JWTClaimsSet.Builder()
- .subject(entityId)
- .issueTime(new Date())
- .issuer(entityId)
- .build());
- }
-
- public static EntityStatement<?> entityStatement(final JWSAlgorithm algorithm, final JWK jwk,
- final JWTClaimsSet claimsSet) {
- return entityStatement(signedJwt(algorithm, jwk, "entity-statement+jwt", claimsSet));
- }
-
- public static EntityStatement<?> entityStatement(final SignedJWT jwt) {
- try {
- if (jwt.getJWTClaimsSet().getSubject().equals(jwt.getJWTClaimsSet().getIssuer())) {
- return EntityConfigurationImpl.parse(jwt, payloadObjectMapper());
- }
- return SubordinateStatementImpl.parse(jwt, payloadObjectMapper());
- } catch (JsonProcessingException | ParseException e) {
- Assert.fail("Could not construct entity configuration", e);
- }
- return null;
-
- }
-
- @Nonnull public static ObjectMapper payloadObjectMapper() {
- final SimpleModule jacksonModule = new SimpleModule();
- jacksonModule.addDeserializer(MetadataPolicy.class, new FederationMetadataPolicyDeserializer("scope"));
- jacksonModule.addDeserializer(JWKSet.class, new JWKSetDeserializer());
- jacksonModule.addDeserializer(Instant.class, new InstantDeserializer());
- final SimpleAbstractTypeResolver jacksonResolver = new SimpleAbstractTypeResolver();
- jacksonResolver.addMapping(Metadata.class, MetadataImpl.class);
- jacksonModule.setAbstractTypes(jacksonResolver);
- final ObjectMapper objectMapper = new ObjectMapper();
- objectMapper.registerModule(jacksonModule);
- return objectMapper;
- }
-
- public static SignedJWT trustMark(final JWSAlgorithm algorithm, final JWK jwk, final String iss, final String sub,
- final String id, final Instant exp) {
- final JWTClaimsSet.Builder builder = new JWTClaimsSet.Builder()
- .subject(sub)
- .issuer(iss)
- .claim("trust_mark_type", id)
- .issueTime(new Date())
- .expirationTime(exp == null ? null : Date.from(exp));
- return signedJwt(algorithm, jwk, "trust-mark+jwt", builder.build());
- }
-
- public static SignedJWT signedJwt(final JWSAlgorithm algorithm, final JWK jwk, final String type,
- final JWTClaimsSet claimsSet) {
- return signedJwt(algorithm, jwk,
- new JWSHeader.Builder(algorithm).type(new JOSEObjectType(type)).keyID(jwk.getKeyID()).build(),
- claimsSet);
- }
-
- public static SignedJWT signedJwt(final JWSAlgorithm algorithm, final JWK jwk, final JWSHeader header,
- final JWTClaimsSet claimsSet) {
- final SignedJWT signedJwt = new SignedJWT(header, claimsSet);
- try {
- if (JWSAlgorithm.Family.RSA.contains(algorithm)) {
- signedJwt.sign(new RSASSASigner(jwk.toRSAKey()));
- } else {
- signedJwt.sign(new ECDSASigner(jwk.toECKey()));
- }
- return signedJwt;
- } catch (final JOSEException e) {
- Assert.fail("Could not construct signed JWT", e);
- }
- return null;
- }
-
-}
diff --git a/idp-oidfed-op-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/oidfed/AuthorizeFlowAutomaticRegistrationTest.java b/idp-oidfed-op-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/oidfed/AuthorizeFlowAutomaticRegistrationTest.java
index 1ecfa46..e015429 100644
--- a/idp-oidfed-op-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/oidfed/AuthorizeFlowAutomaticRegistrationTest.java
+++ b/idp-oidfed-op-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/oidfed/AuthorizeFlowAutomaticRegistrationTest.java
@@ -53,11 +53,11 @@ import com.nimbusds.openid.connect.sdk.AuthenticationResponse;
import com.nimbusds.openid.connect.sdk.AuthenticationSuccessResponse;
import com.nimbusds.openid.connect.sdk.rp.OIDCClientMetadata;
-import net.shibboleth.idp.plugin.oidc.op.oidfed.TrustChainTestUtil;
import net.shibboleth.idp.plugin.oidc.op.profile.flow.AuthorizeFlowTest;
import net.shibboleth.idp.plugin.oidc.op.profile.logic.DefaultPushedAuthorizationRequestUriSerializationFunction;
import net.shibboleth.idp.plugin.oidc.op.token.support.AuthorizeCodeClaimsSet;
import net.shibboleth.idp.session.SessionException;
+import net.shibboleth.oidfed.testing.TrustChainTestUtil;
import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.collection.Pair;
import net.shibboleth.shared.component.ComponentInitializationException;
diff --git a/idp-oidfed-op-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/oidfed/EntityConfigurationFlowTest.java b/idp-oidfed-op-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/oidfed/EntityConfigurationFlowTest.java
index fcb2f54..090529d 100644
--- a/idp-oidfed-op-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/oidfed/EntityConfigurationFlowTest.java
+++ b/idp-oidfed-op-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/oidfed/EntityConfigurationFlowTest.java
@@ -44,11 +44,11 @@ import com.nimbusds.openid.connect.sdk.federation.registration.ClientRegistratio
import com.nimbusds.openid.connect.sdk.op.OIDCProviderMetadata;
import net.minidev.json.JSONObject;
-import net.shibboleth.idp.plugin.oidc.op.oidfed.TrustChainTestUtil;
import net.shibboleth.oidfed.metadata.EntityConfiguration;
import net.shibboleth.oidfed.metadata.cache.trustmark.DefaultTrustMarkFetchingStrategy;
import net.shibboleth.oidfed.metadata.impl.EntityConfigurationImpl;
import net.shibboleth.oidfed.metadata.payload.EntityConfigurationPayload;
+import net.shibboleth.oidfed.testing.TrustChainTestUtil;
import net.shibboleth.shared.collection.CollectionSupport;
/**
diff --git a/idp-oidfed-op-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/oidfed/RegistrationFlowTest.java b/idp-oidfed-op-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/oidfed/RegistrationFlowTest.java
index 1a2a3d1..92ce2f8 100644
--- a/idp-oidfed-op-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/oidfed/RegistrationFlowTest.java
+++ b/idp-oidfed-op-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/oidfed/RegistrationFlowTest.java
@@ -52,10 +52,10 @@ import com.nimbusds.openid.connect.sdk.rp.OIDCClientMetadata;
import net.minidev.json.JSONObject;
import net.minidev.json.parser.JSONParser;
-import net.shibboleth.idp.plugin.oidc.op.oidfed.TrustChainTestUtil;
import net.shibboleth.oidc.metadata.impl.BaseStorageServiceClientInformationComponent;
import net.shibboleth.oidfed.messaging.impl.ExplicitClientRegistrationResponse;
import net.shibboleth.oidfed.metadata.EntityStatement;
+import net.shibboleth.oidfed.testing.TrustChainTestUtil;
import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.collection.Pair;
diff --git a/idp-oidfed-op-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/oidfed/ResolveEntityFlowTest.java b/idp-oidfed-op-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/oidfed/ResolveEntityFlowTest.java
index a0a36f4..edf6771 100644
--- a/idp-oidfed-op-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/oidfed/ResolveEntityFlowTest.java
+++ b/idp-oidfed-op-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/oidfed/ResolveEntityFlowTest.java
@@ -39,10 +39,10 @@ import com.nimbusds.oauth2.sdk.Response;
import com.nimbusds.oauth2.sdk.Scope;
import com.nimbusds.openid.connect.sdk.rp.OIDCClientMetadata;
-import net.shibboleth.idp.plugin.oidc.op.oidfed.TrustChainTestUtil;
import net.shibboleth.oidc.profile.messaging.JSONErrorResponse;
import net.shibboleth.oidfed.messaging.impl.ResolveEntityResponse;
import net.shibboleth.oidfed.metadata.EntityStatement;
+import net.shibboleth.oidfed.testing.TrustChainTestUtil;
import net.shibboleth.shared.collection.CollectionSupport;
import net.minidev.json.JSONObject;
diff --git a/idp-oidfed-op-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/oidfed/UserInfoFlowAutomaticRegistrationTest.java b/idp-oidfed-op-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/oidfed/UserInfoFlowAutomaticRegistrationTest.java
index 48a6314..4004944 100644
--- a/idp-oidfed-op-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/oidfed/UserInfoFlowAutomaticRegistrationTest.java
+++ b/idp-oidfed-op-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/oidfed/UserInfoFlowAutomaticRegistrationTest.java
@@ -41,11 +41,11 @@ import com.nimbusds.openid.connect.sdk.UserInfoSuccessResponse;
import com.nimbusds.openid.connect.sdk.claims.UserInfo;
import com.nimbusds.openid.connect.sdk.rp.OIDCClientMetadata;
-import net.shibboleth.idp.plugin.oidc.op.oidfed.TrustChainTestUtil;
import net.shibboleth.idp.plugin.oidc.op.oidfed.support.ClaimsSetExtensionSupport;
import net.shibboleth.idp.plugin.oidc.op.profile.flow.UserInfoTest;
import net.shibboleth.idp.plugin.oidc.op.token.support.AccessTokenClaimsSet;
import net.shibboleth.idp.plugin.oidc.op.token.support.TokenClaimsSet;
+import net.shibboleth.oidfed.testing.TrustChainTestUtil;
import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.security.DataSealerException;
diff --git a/idp-oidfed-op-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/oidfed/cache/EntityConfigurationMetadataCacheTest.java b/idp-oidfed-op-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/oidfed/cache/EntityConfigurationMetadataCacheTest.java
index 2902952..b4c7829 100644
--- a/idp-oidfed-op-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/oidfed/cache/EntityConfigurationMetadataCacheTest.java
+++ b/idp-oidfed-op-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/oidfed/cache/EntityConfigurationMetadataCacheTest.java
@@ -47,7 +47,6 @@ import com.nimbusds.jwt.JWTClaimsSet;
import com.nimbusds.jwt.PlainJWT;
import com.nimbusds.jwt.SignedJWT;
-import net.shibboleth.idp.plugin.oidc.op.oidfed.TrustChainTestUtil;
import net.shibboleth.oidc.metadata.cache.MetadataCache;
import net.shibboleth.oidc.metadata.cache.MetadataCacheException;
import net.shibboleth.oidfed.flow.AbstractFederationFlowTest;
@@ -57,6 +56,7 @@ import net.shibboleth.oidfed.metadata.EntityConfiguration;
import net.shibboleth.oidfed.metadata.cache.ResponseContainerExpirationCriterion;
import net.shibboleth.oidfed.metadata.cache.SubjectEntityIDCriterion;
import net.shibboleth.oidfed.metadata.cache.configuration.EntityConfigurationContainer;
+import net.shibboleth.oidfed.testing.TrustChainTestUtil;
import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.resolver.CriteriaSet;
diff --git a/idp-oidfed-op-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/oidfed/cache/TrustChainMetadataCacheTest.java b/idp-oidfed-op-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/oidfed/cache/TrustChainMetadataCacheTest.java
index 0bf7878..08603e3 100644
--- a/idp-oidfed-op-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/oidfed/cache/TrustChainMetadataCacheTest.java
+++ b/idp-oidfed-op-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/oidfed/cache/TrustChainMetadataCacheTest.java
@@ -31,7 +31,6 @@ import com.nimbusds.jose.JWSAlgorithm;
import com.nimbusds.jose.jwk.JWKSet;
import com.nimbusds.jwt.JWTClaimsSet;
-import net.shibboleth.idp.plugin.oidc.op.oidfed.TrustChainTestUtil;
import net.shibboleth.oidc.metadata.cache.MetadataCache;
import net.shibboleth.oidc.metadata.cache.MetadataCacheException;
import net.shibboleth.oidfed.flow.AbstractFederationFlowTest;
@@ -40,6 +39,7 @@ import net.shibboleth.oidfed.metadata.cache.IssuerEntityIDCriterion;
import net.shibboleth.oidfed.metadata.cache.ResponseContainerExpirationCriterion;
import net.shibboleth.oidfed.metadata.cache.SubjectEntityIDCriterion;
import net.shibboleth.oidfed.metadata.cache.trustchain.TrustChainsContainer;
+import net.shibboleth.oidfed.testing.TrustChainTestUtil;
import net.shibboleth.shared.resolver.CriteriaSet;
/**
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list