[java-idp-oidc] 08/44: JOIDC-5 Support dynamic resolution of client ID from token requests.

Henri Mikkonen henri.mikkonen at iki.fi
Thu Oct 22 13:08:20 UTC 2020


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

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

View the commit online:
http://git.shibboleth.net/view/?p=java-idp-oidc.git;a=commit;h=ab1f39e72016b4517a0ffe9f57a1d0006664edf7

commit ab1f39e72016b4517a0ffe9f57a1d0006664edf7
Author: Henri Mikkonen <henri.mikkonen at iki.fi>
AuthorDate: Fri Apr 24 14:06:15 2020 +0300

    JOIDC-5 Support dynamic resolution of client ID from token requests.
    
    https://issues.shibboleth.net/jira/browse/JOIDC-5
---
 .../messaging/context/OIDCSAMLPeerEntityContext.java   | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/idp-oidc-extension-api/src/main/java/org/geant/idpextension/oidc/messaging/context/OIDCSAMLPeerEntityContext.java b/idp-oidc-extension-api/src/main/java/org/geant/idpextension/oidc/messaging/context/OIDCSAMLPeerEntityContext.java
index 60fbdf2c..f1f7f020 100644
--- a/idp-oidc-extension-api/src/main/java/org/geant/idpextension/oidc/messaging/context/OIDCSAMLPeerEntityContext.java
+++ b/idp-oidc-extension-api/src/main/java/org/geant/idpextension/oidc/messaging/context/OIDCSAMLPeerEntityContext.java
@@ -26,12 +26,11 @@ import org.slf4j.LoggerFactory;
 
 import com.nimbusds.oauth2.sdk.AuthorizationRequest;
 import com.nimbusds.oauth2.sdk.TokenRequest;
-import com.nimbusds.openid.connect.sdk.UserInfoRequest;
 
 import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
 
 /**
- * Subcontext that carries information about a OIDC peer entity.
+ * Subcontext that carries information about an OIDC peer entity.
  * 
  * <p>
  * This context will often contain subcontexts, whose data is construed to be scoped to that peer entity.
@@ -65,7 +64,7 @@ public class OIDCSAMLPeerEntityContext extends AbstractAuthenticatableSAMLEntity
      * @return the entity ID, or null if it could not be resolved
      */
     @Nullable protected String resolveEntityId() {
-        log.debug("Resolving issuer..");
+        log.debug("Resolving issuer dynamically..");
         if (getParent() instanceof MessageContext) {
             final MessageContext parent = (MessageContext) getParent();
             if (parent.getMessage() instanceof AuthorizationRequest) {
@@ -74,12 +73,15 @@ public class OIDCSAMLPeerEntityContext extends AbstractAuthenticatableSAMLEntity
                 return authzRequest.getClientID().getValue();
             } else if (parent.getMessage() instanceof TokenRequest) {
                 final TokenRequest tokenRequest = (TokenRequest) parent.getMessage();
-                return tokenRequest.getClientID().getValue();
-            } else if (parent.getMessage() instanceof UserInfoRequest) {
-                final UserInfoRequest userInfoRequest = (UserInfoRequest) parent.getMessage();
-                //TODO: fetch the clientID from the access token
+                if (tokenRequest.getClientAuthentication() != null) {
+                    log.debug("Found client ID {}", tokenRequest.getClientAuthentication().getClientID().getValue());
+                    return tokenRequest.getClientAuthentication().getClientID().getValue();
+                } else {
+                    log.debug("Found client ID {}", tokenRequest.getClientID().getValue());
+                    return tokenRequest.getClientID().getValue();
+                }
             } else {
-                log.debug("Unsupported message type: {}", parent.getMessage());
+                log.debug("Unsupported message type for dynamic resolution: {}", parent.getMessage());
             }
         }
         return null;

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


More information about the commits mailing list