[java-idp-oidc] 01/03: Null cleanup of api-module: messaging.context.*

Henri Mikkonen henri.mikkonen at iki.fi
Wed Mar 27 16:14:02 UTC 2024


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=ab81c93860045020bb238005ad562ccf5d8349c9

commit ab81c93860045020bb238005ad562ccf5d8349c9
Author: Henri Mikkonen <henri.mikkonen at iki.fi>
AuthorDate: Wed Mar 27 17:36:02 2024 +0200

    Null cleanup of api-module: messaging.context.*
---
 .../OIDCAuthenticationResponseConsentContext.java   |  4 +---
 .../context/OIDCAuthenticationResponseContext.java  |  2 +-
 .../JWTClaimsSetFromIDTokenLookupFunction.java      | 10 +++++++---
 ...WTClaimsSetFromJWTAccessTokenLookupFunction.java | 14 ++++++++++----
 ...JWTClaimsSetFromLogoutContextLookupFunction.java | 15 +++++++++++----
 .../JWTClaimsSetFromUserInfoLookupFunction.java     | 10 +++++++---
 .../PayloadFromJWTAccessTokenLookupFunction.java    | 16 +++++++++-------
 .../logic/PayloadFromUserInfoLookupFunction.java    | 21 +++++++++++++++------
 .../context/logic/RequestedGrantTypesCondition.java | 17 +++++++++--------
 .../navigate/AudienceClientIDLookupFunction.java    |  6 ------
 ...ntRegistrationRequestMetadataLookupFunction.java |  3 ++-
 ...tRegistrationResponseMetadataLookupFunction.java | 16 ++++++++--------
 ...ntRegistrationRequestMetadataLookupFunction.java |  5 ++++-
 13 files changed, 84 insertions(+), 55 deletions(-)

diff --git a/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/OIDCAuthenticationResponseConsentContext.java b/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/OIDCAuthenticationResponseConsentContext.java
index 88e98c15..f6d01026 100644
--- a/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/OIDCAuthenticationResponseConsentContext.java
+++ b/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/OIDCAuthenticationResponseConsentContext.java
@@ -15,7 +15,6 @@
 package net.shibboleth.idp.plugin.oidc.op.messaging.context;
 
 import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
 import org.opensaml.messaging.context.BaseContext;
 import net.minidev.json.JSONArray;
 
@@ -27,8 +26,7 @@ import net.minidev.json.JSONArray;
 public class OIDCAuthenticationResponseConsentContext extends BaseContext {
 
     /** Attributes having consent. */
-    @Nullable
-    private JSONArray consentedAttributes;
+    @Nonnull private JSONArray consentedAttributes;
 
     /**
      * Constructor.
diff --git a/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/OIDCAuthenticationResponseContext.java b/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/OIDCAuthenticationResponseContext.java
index e33673d7..96f91431 100644
--- a/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/OIDCAuthenticationResponseContext.java
+++ b/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/OIDCAuthenticationResponseContext.java
@@ -465,7 +465,7 @@ public class OIDCAuthenticationResponseContext extends BaseContext {
     * @since 3.1.0
     */
    public void setAccessToken(@Nullable final String token, @Nonnull final Duration lifeTime,
-           @Nonnull final Scope scope) {
+           @Nullable final Scope scope) {
        accessToken = token == null ? null : new BearerAccessToken(token, lifeTime.getSeconds(), scope);
    }
    
diff --git a/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/logic/JWTClaimsSetFromIDTokenLookupFunction.java b/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/logic/JWTClaimsSetFromIDTokenLookupFunction.java
index b9e306c2..aaee707e 100644
--- a/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/logic/JWTClaimsSetFromIDTokenLookupFunction.java
+++ b/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/logic/JWTClaimsSetFromIDTokenLookupFunction.java
@@ -21,12 +21,13 @@ import javax.annotation.Nullable;
 
 import org.opensaml.messaging.context.MessageContext;
 import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.nimbusds.jwt.JWTClaimsSet;
 import com.nimbusds.oauth2.sdk.ParseException;
+import com.nimbusds.openid.connect.sdk.claims.IDTokenClaimsSet;
 
 import net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCAuthenticationResponseContext;
+import net.shibboleth.shared.primitive.LoggerFactory;
 
 /** 
  * Extract the {@link JWTClaimsSet} from the id_token in {@link OIDCAuthenticationResponseContext}.
@@ -46,11 +47,14 @@ public class JWTClaimsSetFromIDTokenLookupFunction implements Function<MessageCo
         }
         final OIDCAuthenticationResponseContext oidcResponseCtx =
                 messageContext.getSubcontext(OIDCAuthenticationResponseContext.class);
-        if (oidcResponseCtx == null || oidcResponseCtx.getIDToken() == null) {
+        if (oidcResponseCtx == null) {
             return null;
         }
+        final IDTokenClaimsSet claimsSet = oidcResponseCtx.getIDToken();
         try {
-            return oidcResponseCtx.getIDToken().toJWTClaimsSet();
+            if (claimsSet != null) {
+                return claimsSet.toJWTClaimsSet();
+            }
         } catch (final ParseException e) {
             log.error("Could not fetch the claims set from ID token", e);
         }
diff --git a/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/logic/JWTClaimsSetFromJWTAccessTokenLookupFunction.java b/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/logic/JWTClaimsSetFromJWTAccessTokenLookupFunction.java
index eee20078..472a8de0 100644
--- a/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/logic/JWTClaimsSetFromJWTAccessTokenLookupFunction.java
+++ b/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/logic/JWTClaimsSetFromJWTAccessTokenLookupFunction.java
@@ -23,13 +23,14 @@ import javax.annotation.Nullable;
 import org.opensaml.messaging.context.MessageContext;
 import org.opensaml.messaging.context.navigate.ChildContextLookup;
 import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
+import com.nimbusds.jwt.JWT;
 import com.nimbusds.jwt.JWTClaimsSet;
 
 import net.shibboleth.idp.plugin.oidc.op.messaging.context.AccessTokenContext;
 import net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCAuthenticationResponseContext;
 import net.shibboleth.shared.logic.Constraint;
+import net.shibboleth.shared.primitive.LoggerFactory;
 
 /** 
  * Extract the {@link JWTClaimsSet} from the JWT in {@link AccessTokenContext}.
@@ -49,8 +50,10 @@ public class JWTClaimsSetFromJWTAccessTokenLookupFunction implements Function<Me
      */
     public JWTClaimsSetFromJWTAccessTokenLookupFunction() {
         // message context -> OIDC response context -> ATC
-        accessTokenContextLookupStrategy = new ChildContextLookup<>(AccessTokenContext.class).compose(
+        final Function<MessageContext,AccessTokenContext> atcl = new ChildContextLookup<>(AccessTokenContext.class).compose(
                 new ChildContextLookup<>(OIDCAuthenticationResponseContext.class));
+        assert atcl != null;
+        accessTokenContextLookupStrategy = atcl;
     }
     
     /**
@@ -71,11 +74,14 @@ public class JWTClaimsSetFromJWTAccessTokenLookupFunction implements Function<Me
             return null;
         }
         final AccessTokenContext tokenCtx = accessTokenContextLookupStrategy.apply(messageContext);
-        if (tokenCtx == null || tokenCtx.getJWT() == null) {
+        if (tokenCtx == null) {
             return null;
         }
+        final JWT jwt = tokenCtx.getJWT();
         try {
-            return tokenCtx.getJWT().getJWTClaimsSet();
+            if (jwt != null) {
+                return jwt.getJWTClaimsSet();
+            }
         } catch (final ParseException e) {
             log.error("Could not fetch the claims set from JWT access token", e);
         }
diff --git a/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/logic/JWTClaimsSetFromLogoutContextLookupFunction.java b/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/logic/JWTClaimsSetFromLogoutContextLookupFunction.java
index 461f28d2..74d77930 100644
--- a/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/logic/JWTClaimsSetFromLogoutContextLookupFunction.java
+++ b/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/logic/JWTClaimsSetFromLogoutContextLookupFunction.java
@@ -22,14 +22,15 @@ import javax.annotation.Nullable;
 import org.opensaml.messaging.context.MessageContext;
 import org.opensaml.messaging.context.navigate.ChildContextLookup;
 import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.nimbusds.jwt.JWTClaimsSet;
 import com.nimbusds.oauth2.sdk.ParseException;
+import com.nimbusds.openid.connect.sdk.claims.LogoutTokenClaimsSet;
 
 import net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCBackChannelLogoutPropagationContext;
 import net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCLogoutPropagationContext;
 import net.shibboleth.shared.logic.Constraint;
+import net.shibboleth.shared.primitive.LoggerFactory;
 
 /** 
  * Extract the {@link JWTClaimsSet} from the JWT in {@link OIDCBackChannelLogoutPropagationContext}.
@@ -49,8 +50,11 @@ public class JWTClaimsSetFromLogoutContextLookupFunction implements Function<Mes
      */
     public JWTClaimsSetFromLogoutContextLookupFunction() {
         // message context -> OIDC response context -> ATC
-        logoutContextLookupStrategy = new ChildContextLookup<>(OIDCBackChannelLogoutPropagationContext.class).compose(
+        final Function<MessageContext,OIDCBackChannelLogoutPropagationContext> lcls = 
+                new ChildContextLookup<>(OIDCBackChannelLogoutPropagationContext.class).compose(
                 new ChildContextLookup<>(OIDCLogoutPropagationContext.class));
+        assert lcls != null;
+        logoutContextLookupStrategy = lcls;
     }
     
     /**
@@ -71,11 +75,14 @@ public class JWTClaimsSetFromLogoutContextLookupFunction implements Function<Mes
             return null;
         }
         final OIDCBackChannelLogoutPropagationContext tokenCtx = logoutContextLookupStrategy.apply(messageContext);
-        if (tokenCtx == null || tokenCtx.getLogoutTokenClaimsSet() == null) {
+        if (tokenCtx == null) {
             return null;
         }
+        final LogoutTokenClaimsSet claimsSet = tokenCtx.getLogoutTokenClaimsSet();
         try {
-            return tokenCtx.getLogoutTokenClaimsSet().toJWTClaimsSet();
+            if (claimsSet != null) {
+                return claimsSet.toJWTClaimsSet();
+            }
         } catch (final ParseException e) {
             log.error("Could not fetch the claims set from the logout context token claims set", e);
         }
diff --git a/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/logic/JWTClaimsSetFromUserInfoLookupFunction.java b/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/logic/JWTClaimsSetFromUserInfoLookupFunction.java
index f8896d1f..3d7a0e4b 100644
--- a/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/logic/JWTClaimsSetFromUserInfoLookupFunction.java
+++ b/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/logic/JWTClaimsSetFromUserInfoLookupFunction.java
@@ -22,13 +22,14 @@ import javax.annotation.Nullable;
 
 import org.opensaml.messaging.context.MessageContext;
 import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.nimbusds.jose.Payload;
 import com.nimbusds.jwt.JWTClaimsSet;
 import com.nimbusds.oauth2.sdk.ParseException;
+import com.nimbusds.openid.connect.sdk.claims.UserInfo;
 
 import net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCAuthenticationResponseContext;
+import net.shibboleth.shared.primitive.LoggerFactory;
 
 /** 
  * Extract the {@link Payload} from the user info in {@link OIDCAuthenticationResponseContext}.
@@ -48,11 +49,14 @@ public class JWTClaimsSetFromUserInfoLookupFunction implements Function<MessageC
         }
         final OIDCAuthenticationResponseContext oidcResponseCtx =
                 messageContext.getSubcontext(OIDCAuthenticationResponseContext.class);
-        if (oidcResponseCtx == null || oidcResponseCtx.getUserInfo() == null) {
+        if (oidcResponseCtx == null) {
             return null;
         }
+        final UserInfo userInfo = oidcResponseCtx.getUserInfo();
         try {
-            return oidcResponseCtx.getUserInfo().toJWTClaimsSet();
+            if (userInfo != null) {
+                return userInfo.toJWTClaimsSet();
+            }
         } catch (final ParseException e) {
             log.error("Could not fetch the claims set from UserInfo response", e);
         }
diff --git a/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/logic/PayloadFromJWTAccessTokenLookupFunction.java b/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/logic/PayloadFromJWTAccessTokenLookupFunction.java
index b9eaf970..9d9e7429 100644
--- a/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/logic/PayloadFromJWTAccessTokenLookupFunction.java
+++ b/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/logic/PayloadFromJWTAccessTokenLookupFunction.java
@@ -23,7 +23,6 @@ import javax.annotation.Nullable;
 import org.opensaml.messaging.context.MessageContext;
 import org.opensaml.messaging.context.navigate.ChildContextLookup;
 import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.nimbusds.jose.Payload;
 import com.nimbusds.jwt.PlainJWT;
@@ -32,6 +31,7 @@ import com.nimbusds.jwt.SignedJWT;
 import net.shibboleth.idp.plugin.oidc.op.messaging.context.AccessTokenContext;
 import net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCAuthenticationResponseContext;
 import net.shibboleth.shared.logic.Constraint;
+import net.shibboleth.shared.primitive.LoggerFactory;
 
 /** 
  * Extract the {@link Payload} from the JWT in {@link AccessTokenContext}.
@@ -51,8 +51,10 @@ public class PayloadFromJWTAccessTokenLookupFunction implements Function<Message
      */
     public PayloadFromJWTAccessTokenLookupFunction() {
         // message context -> OIDC response context -> ATC
-        accessTokenContextLookupStrategy = new ChildContextLookup<>(AccessTokenContext.class).compose(
-                new ChildContextLookup<>(OIDCAuthenticationResponseContext.class));
+        final Function<MessageContext,AccessTokenContext> atcls = new ChildContextLookup<>(AccessTokenContext.class)
+                .compose(new ChildContextLookup<>(OIDCAuthenticationResponseContext.class));
+        assert atcls != null;
+        accessTokenContextLookupStrategy = atcls;
     }
     
     /**
@@ -75,11 +77,11 @@ public class PayloadFromJWTAccessTokenLookupFunction implements Function<Message
         if (tokenCtx == null || tokenCtx.getJWT() == null) {
             return null;
         }
-        if (tokenCtx.getJWT() instanceof SignedJWT) {
-            return new Payload((SignedJWT) tokenCtx.getJWT());
-        } else if (tokenCtx.getJWT() instanceof PlainJWT) {
+        if (tokenCtx.getJWT() instanceof SignedJWT signedJwt) {
+            return new Payload(signedJwt);
+        } else if (tokenCtx.getJWT() instanceof PlainJWT plainJwt) {
             try {
-                return new Payload(tokenCtx.getJWT().getJWTClaimsSet().getClaims());
+                return new Payload(plainJwt.getJWTClaimsSet().getClaims());
             } catch (final ParseException e) {
                 log.error("Unable to convert plaintext JWT to claims set", e);
             }
diff --git a/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/logic/PayloadFromUserInfoLookupFunction.java b/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/logic/PayloadFromUserInfoLookupFunction.java
index 8aef455b..7e69ef1d 100644
--- a/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/logic/PayloadFromUserInfoLookupFunction.java
+++ b/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/logic/PayloadFromUserInfoLookupFunction.java
@@ -22,6 +22,8 @@ import javax.annotation.Nullable;
 import org.opensaml.messaging.context.MessageContext;
 
 import com.nimbusds.jose.Payload;
+import com.nimbusds.jwt.JWT;
+import com.nimbusds.openid.connect.sdk.claims.UserInfo;
 
 import net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCAuthenticationResponseContext;
 
@@ -39,13 +41,20 @@ public class PayloadFromUserInfoLookupFunction implements Function<MessageContex
         }
         final OIDCAuthenticationResponseContext oidcResponseCtx =
                 messageContext.getSubcontext(OIDCAuthenticationResponseContext.class);
-        if (oidcResponseCtx == null ||
-                (oidcResponseCtx.getUserInfo() == null && oidcResponseCtx.getProcessedToken() == null)) {
+        if (oidcResponseCtx == null) {
             return null;
         }
-        return oidcResponseCtx.getProcessedToken() == null
-                ? new Payload(oidcResponseCtx.getUserInfo().toJSONObject())
-                : new Payload(oidcResponseCtx.getProcessedToken().serialize());
-    }
 
+        final JWT jwt = oidcResponseCtx.getProcessedToken();
+        if (jwt != null) {
+            return new Payload(jwt.serialize());
+        }
+
+        final UserInfo userInfo = oidcResponseCtx.getUserInfo();
+        if (userInfo != null) {
+            return new Payload(userInfo.toJSONObject());
+        }
+
+        return null;
+    }
 }
diff --git a/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/logic/RequestedGrantTypesCondition.java b/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/logic/RequestedGrantTypesCondition.java
index 2d4764a1..d58db07f 100644
--- a/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/logic/RequestedGrantTypesCondition.java
+++ b/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/logic/RequestedGrantTypesCondition.java
@@ -14,7 +14,6 @@
 package net.shibboleth.idp.plugin.oidc.op.messaging.context.logic;
 
 import java.util.Collection;
-import java.util.Collections;
 import java.util.Set;
 import java.util.function.Predicate;
 
@@ -27,6 +26,7 @@ import com.nimbusds.oauth2.sdk.GrantType;
 import com.nimbusds.oauth2.sdk.TokenRequest;
 
 import net.shibboleth.shared.annotation.constraint.NonnullElements;
+import net.shibboleth.shared.collection.CollectionSupport;
 
 /**
  * Checks whether a {@link TokenRequest} was for one of a set of candidate grant_type values.
@@ -38,7 +38,7 @@ public class RequestedGrantTypesCondition implements Predicate<ProfileRequestCon
     
     /** Constructor. */
     public RequestedGrantTypesCondition() {
-        candidates = Collections.emptySet();
+        candidates = CollectionSupport.emptySet();
     }
     
     /**
@@ -47,17 +47,18 @@ public class RequestedGrantTypesCondition implements Predicate<ProfileRequestCon
      * @param types candidate types
      */
     public void setGrantTypes(@Nonnull @NonnullElements final Collection<GrantType> types) {
-        candidates = Set.copyOf(types);
+        candidates = CollectionSupport.copyToSet(types);
     }
     
     /** {@inheritDoc} */
     public boolean test(@Nullable final ProfileRequestContext input) {
-        if (input.getInboundMessageContext() != null) {
-            final Object message = input.getInboundMessageContext().getMessage();
-            if (message instanceof TokenRequest) {
-                return candidates.contains(((TokenRequest) message).getAuthorizationGrant().getType());
-            } 
+        if (input == null || input.getInboundMessageContext() == null) {
+            return false;
         }
+        final Object message = input.ensureInboundMessageContext().getMessage();
+        if (message instanceof TokenRequest tokenRequest) {
+                return candidates.contains(tokenRequest.getAuthorizationGrant().getType());
+        } 
         
         return false;
     }
diff --git a/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/navigate/AudienceClientIDLookupFunction.java b/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/navigate/AudienceClientIDLookupFunction.java
index 1a916f98..d7e73cac 100644
--- a/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/navigate/AudienceClientIDLookupFunction.java
+++ b/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/navigate/AudienceClientIDLookupFunction.java
@@ -14,13 +14,10 @@
 
 package net.shibboleth.idp.plugin.oidc.op.messaging.context.navigate;
 
-import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
 import org.opensaml.messaging.context.MessageContext;
 import org.opensaml.messaging.context.navigate.ContextDataLookupFunction;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.nimbusds.oauth2.sdk.id.ClientID;
 
@@ -33,9 +30,6 @@ import net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCAuthenticationRes
  */
 public class AudienceClientIDLookupFunction implements ContextDataLookupFunction<MessageContext,ClientID> {
 
-    /** Class logger. */
-    @Nonnull private Logger log = LoggerFactory.getLogger(AudienceClientIDLookupFunction.class);
-    
     /** {@inheritDoc} */
     @Nullable public ClientID apply(@Nullable final MessageContext input) {
         if (input != null) {
diff --git a/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/navigate/OIDCClientRegistrationRequestMetadataLookupFunction.java b/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/navigate/OIDCClientRegistrationRequestMetadataLookupFunction.java
index 505215ee..f4e0f69d 100644
--- a/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/navigate/OIDCClientRegistrationRequestMetadataLookupFunction.java
+++ b/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/navigate/OIDCClientRegistrationRequestMetadataLookupFunction.java
@@ -21,11 +21,12 @@ import org.opensaml.messaging.context.MessageContext;
 import org.opensaml.messaging.context.navigate.ContextDataLookupFunction;
 import org.opensaml.profile.context.ProfileRequestContext;
 import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.nimbusds.openid.connect.sdk.rp.OIDCClientMetadata;
 import com.nimbusds.openid.connect.sdk.rp.OIDCClientRegistrationRequest;
 
+import net.shibboleth.shared.primitive.LoggerFactory;
+
 /**
  * A function that returns {@link OIDCClientMetadata} if such is available in the message from a {@link MessageContext}
  * obtained via {@link ProfileRequestContext#getInboundMessageContext()}.
diff --git a/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/navigate/OIDCClientRegistrationResponseMetadataLookupFunction.java b/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/navigate/OIDCClientRegistrationResponseMetadataLookupFunction.java
index 84504a5b..c96841a4 100644
--- a/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/navigate/OIDCClientRegistrationResponseMetadataLookupFunction.java
+++ b/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/navigate/OIDCClientRegistrationResponseMetadataLookupFunction.java
@@ -24,12 +24,12 @@ import org.opensaml.messaging.context.navigate.ChildContextLookup;
 import org.opensaml.messaging.context.navigate.ContextDataLookupFunction;
 import org.opensaml.profile.context.ProfileRequestContext;
 import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.nimbusds.openid.connect.sdk.rp.OIDCClientMetadata;
 
 import net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCClientRegistrationResponseContext;
 import net.shibboleth.shared.logic.Constraint;
+import net.shibboleth.shared.primitive.LoggerFactory;
 
 /**
  * A function that returns {@link OIDCClientMetadata} if such is available in the message from a 
@@ -71,13 +71,13 @@ public class OIDCClientRegistrationResponseMetadataLookupFunction
    
     /** {@inheritDoc} */
     @Nullable public OIDCClientMetadata apply(@Nullable final ProfileRequestContext input) {
-        final MessageContext msgCtx = input.getOutboundMessageContext();
-        if (msgCtx != null) {
-            final OIDCClientRegistrationResponseContext oidcResponseCtx 
-                = oidcResponseContextLookupStrategy.apply(msgCtx);
-            if (oidcResponseCtx != null) {
-                return oidcResponseCtx.getClientMetadata();
-            }
+        if (input == null || input.getOutboundMessageContext() == null) {
+            return null;
+        }
+        final OIDCClientRegistrationResponseContext oidcResponseCtx
+                = oidcResponseContextLookupStrategy.apply(input.getOutboundMessageContext());
+        if (oidcResponseCtx != null) {
+            return oidcResponseCtx.getClientMetadata();
         }
         log.debug("No response OIDCClientMetadata found from the profile request context!");
         return null;
diff --git a/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/navigate/OIDCPolicyEnforcedClientRegistrationRequestMetadataLookupFunction.java b/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/navigate/OIDCPolicyEnforcedClientRegistrationRequestMetadataLookupFunction.java
index 12445f15..bab11c40 100644
--- a/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/navigate/OIDCPolicyEnforcedClientRegistrationRequestMetadataLookupFunction.java
+++ b/idp-oidc-extension-api/src/main/java/net/shibboleth/idp/plugin/oidc/op/messaging/context/navigate/OIDCPolicyEnforcedClientRegistrationRequestMetadataLookupFunction.java
@@ -46,9 +46,12 @@ public class OIDCPolicyEnforcedClientRegistrationRequestMetadataLookupFunction
      * Constructor.
      */
     public OIDCPolicyEnforcedClientRegistrationRequestMetadataLookupFunction() {
-        registrationMetadataPolicyContextLookupStrategy =
+        final Function<ProfileRequestContext, OIDCClientRegistrationMetadataPolicyContext> rmpcls =
                 new ChildContextLookup<>(OIDCClientRegistrationMetadataPolicyContext.class, false)
                         .compose(new InboundMessageContextLookup());
+        assert rmpcls != null;
+        registrationMetadataPolicyContextLookupStrategy = rmpcls;
+
     }
 
     /**

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


More information about the commits mailing list