You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by co...@apache.org on 2026/07/07 14:42:05 UTC
(cxf) 01/01: Switch AbstractJwtHandler to require that the subject = the client Id by default
This is an automated email from the ASF dual-hosted git repository.
coheigea pushed a commit to branch coheigea/oauth2-subject-binding
in repository https://gitbox.apache.org/repos/asf/cxf.git
commit 2ce4409fe6acea6c9df627bd231f109badff3b38
Author: Colm O hEigeartaigh <co...@apache.org>
AuthorDate: Tue Jul 7 15:41:34 2026 +0100
Switch AbstractJwtHandler to require that the subject = the client Id by default
---
.../cxf/rs/security/oauth2/grants/jwt/AbstractJwtHandler.java | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/grants/jwt/AbstractJwtHandler.java b/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/grants/jwt/AbstractJwtHandler.java
index 1a8c92a6e42..8f962334223 100644
--- a/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/grants/jwt/AbstractJwtHandler.java
+++ b/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/grants/jwt/AbstractJwtHandler.java
@@ -82,6 +82,13 @@ public abstract class AbstractJwtHandler extends AbstractGrantHandler {
if (subject == null) {
throw new OAuthServiceException(OAuthConstants.INVALID_GRANT);
}
+ // Strict-by-default: require the assertion subject to match the authenticated client id.
+ // Subclasses can override this method to support a different authorization model
+ // (for example, trusted delegation with an explicit client-to-subject policy).
+ if (client != null && client.getClientId() != null
+ && !client.getClientId().equals(subject)) {
+ throw new OAuthServiceException(OAuthConstants.INVALID_GRANT);
+ }
}
public void setSupportedIssuers(Set<String> supportedIssuers) {
this.supportedIssuers = supportedIssuers;