[java-idp-plugin-oidc-op-oidfed] 02/02: Fix JWT type-header for the resolve entity response.

Henri Mikkonen henri.mikkonen at iki.fi
Fri Sep 26 14:16:34 UTC 2025


This is an automated email from the git hooks/post-receive script.

hjmikkon pushed a commit to branch main
in repository java-idp-plugin-oidc-op-oidfed.

View the commit online:
http://git.shibboleth.net/view/?p=java-idp-plugin-oidc-op-oidfed.git;a=commit;h=0ce593b73b2e83ecef02324f18bdc55b75621b79

commit 0ce593b73b2e83ecef02324f18bdc55b75621b79
Author: Henri Mikkonen <henri.mikkonen at iki.fi>
AuthorDate: Fri Sep 26 17:16:10 2025 +0300

    Fix JWT type-header for the resolve entity response.
    
    Also fixed bean identifiers to refer to ResolveResponse instead of EntityStatement.
---
 .../oidfed/resolve-entity/resolve-entity-beans.xml | 22 +++++++++++-----------
 .../oidfed/resolve-entity/resolve-entity-flow.xml  |  6 +++---
 .../profile/flow/oidfed/ResolveEntityFlowTest.java |  3 +++
 3 files changed, 17 insertions(+), 14 deletions(-)

diff --git a/idp-oidfed-op-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidfed/resolve-entity/resolve-entity-beans.xml b/idp-oidfed-op-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidfed/resolve-entity/resolve-entity-beans.xml
index 8b85ea4..ee74c7e 100644
--- a/idp-oidfed-op-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidfed/resolve-entity/resolve-entity-beans.xml
+++ b/idp-oidfed-op-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidfed/resolve-entity/resolve-entity-beans.xml
@@ -141,10 +141,10 @@
         </property>
     </bean>
 
-    <bean id="PopulateEntityStatementSignatureSigningParameters"
+    <bean id="PopulateResolveResponseSignatureSigningParameters"
         class="net.shibboleth.oidc.profile.impl.PopulateJWTSignatureSigningParameters" scope="prototype"
         c:strategy-ref="shibboleth.MessageContextLookup.Outbound"
-        p:securityParametersContextLookupStrategy-ref="EntityStatementSecurityParametersContextLookupStrategy">
+        p:securityParametersContextLookupStrategy-ref="ResolveResponseSecurityParametersContextLookupStrategy">
         <property name="configurationLookupStrategy">
             <bean lazy-init="true"
                 class="net.shibboleth.oidc.profile.config.navigate.JWTSignatureSigningConfigurationLookupFunction" />
@@ -159,18 +159,18 @@
         </property>
     </bean>
 
-    <bean id="EntityStatementSecurityParametersContextLookupStrategy" parent="shibboleth.Functions.Compose"
+    <bean id="ResolveResponseSecurityParametersContextLookupStrategy" parent="shibboleth.Functions.Compose"
             c:g-ref="shibboleth.oidc.ChildLookupOrCreate.JWTSecurityParameters"
             c:f-ref="shibboleth.ChildLookup.RelyingParty" />
 
-    <bean id="EntityStatementSecurityParametersCreationViaMessageContextStrategy" parent="shibboleth.Functions.Compose">
-        <constructor-arg name="g" ref="EntityStatementSecurityParametersContextLookupStrategy" />
+    <bean id="ResolveResponseSecurityParametersCreationViaMessageContextStrategy" parent="shibboleth.Functions.Compose">
+        <constructor-arg name="g" ref="ResolveResponseSecurityParametersContextLookupStrategy" />
         <constructor-arg name="f">
             <bean parent="shibboleth.Functions.Expression" c:expression="#input.getParent()" />
         </constructor-arg>
     </bean>
 
-    <bean id="BuildEntityStatement"
+    <bean id="BuildResolveResponse"
         class="net.shibboleth.idp.plugin.oidc.op.oidfed.profile.impl.BuildResolveEntityResponse" scope="prototype"
         p:identifierGeneratorLookupStrategy-ref="shibboleth.oidc.DefaultIdentifierGenerationStrategy"
         p:objectMapper-ref="#{'%{idp.oidc.logging.objectMapper:shibboleth.oidc.JSONObjectMapper}'.trim()}">
@@ -180,13 +180,13 @@
         </property>    
     </bean>
 
-    <bean id="SignEntityStatement" class="net.shibboleth.idp.profile.impl.WebFlowMessageHandlerAdaptor"
+    <bean id="SignResolveResponse" class="net.shibboleth.idp.profile.impl.WebFlowMessageHandlerAdaptor"
             scope="prototype" c:executionDirection="OUTBOUND ">
         <constructor-arg name="messageHandler">
-            <bean id="SignEntityStatementHandler"
-                class="net.shibboleth.oidc.security.impl.SignJWTHandler" scope="prototype" p:logName="Entity Statement"
-                p:securityParametersLookupStrategy-ref="EntityStatementSecurityParametersCreationViaMessageContextStrategy"
-                p:typeHeader="entity-statement+jwt">
+            <bean id="SignResolveResponseHandler"
+                class="net.shibboleth.oidc.security.impl.SignJWTHandler" scope="prototype" p:logName="Resolve Response"
+                p:securityParametersLookupStrategy-ref="ResolveResponseSecurityParametersCreationViaMessageContextStrategy"
+                p:typeHeader="resolve-response+jwt">
                 <property name="claimsToSignLookupStrategy">
                      <bean
                         class="net.shibboleth.idp.plugin.oidc.op.oidfed.profile.impl.JWTClaimsSetFromEntityStatementLookupFunction" />
diff --git a/idp-oidfed-op-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidfed/resolve-entity/resolve-entity-flow.xml b/idp-oidfed-op-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidfed/resolve-entity/resolve-entity-flow.xml
index f80f880..81639af 100644
--- a/idp-oidfed-op-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidfed/resolve-entity/resolve-entity-flow.xml
+++ b/idp-oidfed-op-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidfed/resolve-entity/resolve-entity-flow.xml
@@ -64,9 +64,9 @@
 
 
     <action-state id="BuildResponse">
-        <evaluate expression="PopulateEntityStatementSignatureSigningParameters" />
-        <evaluate expression="BuildEntityStatement" />
-        <evaluate expression="SignEntityStatement" />
+        <evaluate expression="PopulateResolveResponseSignatureSigningParameters" />
+        <evaluate expression="BuildResolveResponse" />
+        <evaluate expression="SignResolveResponse" />
         <evaluate expression="'proceed'" />
         
         <transition on="proceed" to="BuildResponseMessage" />
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 93f2cb0..00551b5 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
@@ -21,6 +21,7 @@ import org.springframework.webflow.executor.FlowExecutionResult;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
+import com.nimbusds.jose.JOSEObjectType;
 import com.nimbusds.jwt.SignedJWT;
 import com.nimbusds.oauth2.sdk.Response;
 
@@ -75,6 +76,7 @@ public class ResolveEntityFlowTest extends AbstractFederationFlowTest {
         final ResolveEntityResponse parsedResponse =
                 parseSuccessResponse(result, ResolveEntityResponse.class);
         final SignedJWT response = parsedResponse.getJWT();
+        Assert.assertEquals(response.getHeader().getType(), new JOSEObjectType("resolve-response+jwt"));
         Assert.assertEquals(response.getJWTClaimsSet().getSubject(), clientId);
         Assert.assertNotNull(response.getJWTClaimsSet().getClaim("metadata"));
     }
@@ -99,6 +101,7 @@ public class ResolveEntityFlowTest extends AbstractFederationFlowTest {
         final ResolveEntityResponse parsedResponse =
                 parseSuccessResponse(result, ResolveEntityResponse.class);
         final SignedJWT response = parsedResponse.getJWT();
+        Assert.assertEquals(response.getHeader().getType(), new JOSEObjectType("resolve-response+jwt"));
         Assert.assertEquals(response.getJWTClaimsSet().getSubject(), entityId);
         Assert.assertNotNull(response.getJWTClaimsSet().getClaim("metadata"));
     }

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list