[java-oidc-common] branch main updated: JCOMOIDC-178 - Add LogoutProfileConfig option to toggle post_logout_redirect_uri construction

Codeberg noreply at shibboleth.net
Thu Jul 9 13:52:38 UTC 2026


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

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

View the commit online:
https://codeberg.org/Shibboleth/java-oidc-common/commit/9a8bf99d6656351313c3cb60dd970dde4e3bc055

The following commit(s) were added to refs/heads/main by this push:
     new 9a8bf99d JCOMOIDC-178 - Add LogoutProfileConfig option to toggle post_logout_redirect_uri construction
9a8bf99d is described below

commit 9a8bf99d6656351313c3cb60dd970dde4e3bc055
Author: Phil Smart <philip.smart at jisc.ac.uk>
AuthorDate: Thu Jul 9 14:52:29 2026 +0100

    JCOMOIDC-178 - Add LogoutProfileConfig option to toggle
    post_logout_redirect_uri construction
    
    https://shibboleth.atlassian.net/browse/JCOMOIDC-178
---
 .../config/OIDCLogoutProfileConfiguration.java     | 16 ++++++++++
 .../impl/DefaultOIDCLogoutConfiguration.java       | 35 ++++++++++++++++++++++
 2 files changed, 51 insertions(+)

diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCLogoutProfileConfiguration.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCLogoutProfileConfiguration.java
index b575af00..a084cca0 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCLogoutProfileConfiguration.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCLogoutProfileConfiguration.java
@@ -151,5 +151,21 @@ public interface OIDCLogoutProfileConfiguration extends OAuth2TokenEncryptionPro
     @Nullable default String getLogoutHintClaim(@Nullable final ProfileRequestContext profileRequestContext) {
         return null;
     }
+    
+    /**
+     * Get whether post_logout_redirect_uri is included in an OIDC RP-Initiated logout request.
+     * 
+     * @param profileRequestContext profile request context
+     * 
+     * @return true if the post_logout_redirect_uri parameter should be included in the request, false otherwise.
+     * 
+     * TODO: remove the default implementation in version 4.0.0
+     *
+     * @since 3.4.0
+     */
+    @ConfigurationSetting(name="includePostLogoutRedirectUri")
+    default boolean isIncludePostLogoutRedirectUri(@Nullable final ProfileRequestContext profileRequestContext) {
+        return false;
+    }
 
 }
\ No newline at end of file
diff --git a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/DefaultOIDCLogoutConfiguration.java b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/DefaultOIDCLogoutConfiguration.java
index bd108005..4b7d9794 100644
--- a/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/DefaultOIDCLogoutConfiguration.java
+++ b/oidc-common-profile-impl/src/main/java/net/shibboleth/oidc/profile/config/impl/DefaultOIDCLogoutConfiguration.java
@@ -89,6 +89,9 @@ public class DefaultOIDCLogoutConfiguration extends AbstractOAuth2InterceptorAwa
      * contained inside the ID Token. 
      */
     @Nonnull private Function<ProfileRequestContext,String> logoutHintClaimLookupStrategy;
+    
+    /** Whether to include the post_logout_redirect_uri parameter in an RP-Initiated logout request. */
+    @Nonnull private Predicate<ProfileRequestContext> includePostLogoutRedirectUri;
 
     /**
      * Constructor.
@@ -115,6 +118,7 @@ public class DefaultOIDCLogoutConfiguration extends AbstractOAuth2InterceptorAwa
         ignoreInvalidPostLogoutRedirectUriPredicate = PredicateSupport.alwaysFalse();
         httpRequestMethodLookupStrategy = FunctionSupport.constant(HttpRequestMethod.GET.toString());
         logoutHintClaimLookupStrategy = FunctionSupport.constant(null);
+        includePostLogoutRedirectUri = PredicateSupport.alwaysFalse();
     }
 
     @Override @Nullable @NotEmpty
@@ -410,5 +414,36 @@ public class DefaultOIDCLogoutConfiguration extends AbstractOAuth2InterceptorAwa
     public String getLogoutHintClaim(final ProfileRequestContext profileRequestContext) {
         return logoutHintClaimLookupStrategy.apply(profileRequestContext);
     }
+    
+    /**
+     * Set the predicate to determine if the post_logout_redirect_uri parameter be included in an RP-Initiated logout 
+     * request.
+     * 
+     * @since 3.4.0
+     * 
+     * @param condition The condition to set.
+     */
+    public void setIncludePostLogoutRedirectUri(@Nonnull final Predicate<ProfileRequestContext> condition) {
+        includePostLogoutRedirectUri = 
+                Constraint.isNotNull(condition, "IncludePostLogoutRedirectUri predicate cannot be null");
+    }
+    
+    /**
+     * Set whether to determine if the post_logout_redirect_uri parameter be included in an RP-Initiated logout 
+     * request.
+     * 
+     * @since 3.4.0
+     * 
+     * @param flag The flag to set.
+     */
+    public void setIncludePostLogoutRedirectUri(final boolean flag) {
+        includePostLogoutRedirectUri = PredicateSupport.constant(flag);
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public boolean isIncludePostLogoutRedirectUri(final ProfileRequestContext profileRequestContext) {
+        return includePostLogoutRedirectUri.test(profileRequestContext);
+    }
 
 }
\ No newline at end of file

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


More information about the commits mailing list