[java-plugin-shibd-oidc] branch main updated: JSHIBDOIDC-6 - Add back PKCE support

Codeberg noreply at shibboleth.net
Thu Apr 16 16:31:41 UTC 2026


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

codeberg pushed a commit to branch main
in repository java-plugin-shibd-oidc.

View the commit online:
https://codeberg.org/Shibboleth/java-plugin-shibd-oidc/commit/78d61eadcab7fdd2f9ec6a17d55b6613351ec223

The following commit(s) were added to refs/heads/main by this push:
     new 78d61ea  JSHIBDOIDC-6 - Add back PKCE support
78d61ea is described below

commit 78d61eadcab7fdd2f9ec6a17d55b6613351ec223
Author: Phil Smart <philip.smart at jisc.ac.uk>
AuthorDate: Thu Apr 16 17:31:31 2026 +0100

    JSHIBDOIDC-6 - Add back PKCE support
    
     - Inject PKCE lookup into token request encoder
    
    https://shibboleth.atlassian.net/browse/JSHIBDOIDC-6
---
 .../net/shibboleth/idp/flows/sp/consumer/oidc/oidc-beans.xml |  6 +++++-
 ...egy.java => PKCECodeVerifierFromStateLookupStrategy.java} | 12 ++++++------
 .../profile/impl/RedirectUriFromStateLookupStrategy.java     |  3 ++-
 3 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/sp-oidc-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/consumer/oidc/oidc-beans.xml b/sp-oidc-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/consumer/oidc/oidc-beans.xml
index 3b89cb7..df8e5f9 100644
--- a/sp-oidc-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/consumer/oidc/oidc-beans.xml
+++ b/sp-oidc-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/consumer/oidc/oidc-beans.xml
@@ -205,7 +205,11 @@
         <property name="redirectUriLookupStrategy">
              <bean class="net.shibboleth.sp.oidc.profile.impl.RedirectUriFromStateLookupStrategy" scope="prototype" 
              c:authenticationRequestLookupStrategy-ref="shibboleth.ChildLookup.AuthenticationRequestStateDataFromInbound"/>   
-        </property>   
+        </property>
+        <property name="pkceCodeVerifierLookupStrategy">
+             <bean class="net.shibboleth.sp.oidc.profile.impl.PKCECodeVerifierFromStateLookupStrategy" scope="prototype" 
+             c:authenticationRequestLookupStrategy-ref="shibboleth.ChildLookup.AuthenticationRequestStateDataFromInbound"/>   
+        </property>  
     </bean>
     
     <bean id="ValidateOAuthAccessTokenResponse" scope="prototype"
diff --git a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/RedirectUriFromStateLookupStrategy.java b/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/PKCECodeVerifierFromStateLookupStrategy.java
similarity index 82%
copy from sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/RedirectUriFromStateLookupStrategy.java
copy to sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/PKCECodeVerifierFromStateLookupStrategy.java
index a344abc..bc873bb 100644
--- a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/RedirectUriFromStateLookupStrategy.java
+++ b/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/PKCECodeVerifierFromStateLookupStrategy.java
@@ -14,7 +14,6 @@
 
 package net.shibboleth.sp.oidc.profile.impl;
 
-import java.net.URI;
 import java.util.function.Function;
 
 import javax.annotation.Nonnull;
@@ -34,19 +33,20 @@ import net.shibboleth.sp.oidc.profile.AuthenticationRequestStateData;
  * {@link AuthnRequestStateDataContext} associated with a {@link ProfileRequestContext}.
  */
 @ThreadSafe
-public class RedirectUriFromStateLookupStrategy implements Function<ProfileRequestContext, URI> {
+public class PKCECodeVerifierFromStateLookupStrategy implements Function<ProfileRequestContext, String> {
     
     /** 
      * Strategy used to locate the {@link AuthnRequestStateDataContext}.
      */
-    @Nonnull private final Function<ProfileRequestContext, AuthnRequestStateDataContext> authenticationRequestLookupStrategy;
+    @Nonnull 
+    private final Function<ProfileRequestContext, AuthnRequestStateDataContext> authenticationRequestLookupStrategy;
 
     /**
      * Constructor.
      *
      * @param strategy strategy to find the authentication request state context
      */
-    public RedirectUriFromStateLookupStrategy(@ParameterName(name = "authenticationRequestLookupStrategy")
+    public PKCECodeVerifierFromStateLookupStrategy(@ParameterName(name = "authenticationRequestLookupStrategy")
             @Nonnull final Function<ProfileRequestContext, AuthnRequestStateDataContext> strategy) {
         authenticationRequestLookupStrategy = Constraint.isNotNull(strategy,
                 "authenticationRequestLookupStrategy can not be null");
@@ -54,7 +54,7 @@ public class RedirectUriFromStateLookupStrategy implements Function<ProfileReque
     
 
     @Override
-    @Nullable public URI apply(final ProfileRequestContext prc) {
+    @Nullable public String apply(final ProfileRequestContext prc) {
         
         final AuthnRequestStateDataContext authnRequestCtx = authenticationRequestLookupStrategy.apply(prc);
         
@@ -65,7 +65,7 @@ public class RedirectUriFromStateLookupStrategy implements Function<ProfileReque
         if (authnRequest == null) {
             return null;
         }
-        return authnRequest.getRedirectUri();
+        return authnRequest.getPkceCodeVerifier();
     }
 
 }
diff --git a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/RedirectUriFromStateLookupStrategy.java b/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/RedirectUriFromStateLookupStrategy.java
index a344abc..e6b0060 100644
--- a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/RedirectUriFromStateLookupStrategy.java
+++ b/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/RedirectUriFromStateLookupStrategy.java
@@ -39,7 +39,8 @@ public class RedirectUriFromStateLookupStrategy implements Function<ProfileReque
     /** 
      * Strategy used to locate the {@link AuthnRequestStateDataContext}.
      */
-    @Nonnull private final Function<ProfileRequestContext, AuthnRequestStateDataContext> authenticationRequestLookupStrategy;
+    @Nonnull 
+    private final Function<ProfileRequestContext, AuthnRequestStateDataContext> authenticationRequestLookupStrategy;
 
     /**
      * Constructor.

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


More information about the commits mailing list