[java-plugin-shibd-oidc] branch main updated: Cleanup packages

Codeberg noreply at shibboleth.net
Fri May 8 09:51:49 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/1e12be0d53e36edcbc4b81b15bef19f046a8d527

The following commit(s) were added to refs/heads/main by this push:
     new 1e12be0  Cleanup packages
1e12be0 is described below

commit 1e12be0d53e36edcbc4b81b15bef19f046a8d527
Author: Phil Smart <philip.smart at jisc.ac.uk>
AuthorDate: Fri May 8 10:49:13 2026 +0100

    Cleanup packages
    
     - Move classes into appropriate API packages
---
 .../shibboleth/sp/oidc/context/package-info.java   |   5 +-
 .../oidc/messaging/context/logic/package-info.java |   7 +-
 ...WTClaimsSetFromRequestObjectLookupFunction.java |   2 +-
 .../PayloadFromRequestObjectLookupFunction.java    |   2 +-
 .../navigate/RequestObjectTokenUpdateStrategy.java |   2 +-
 .../navigate/StateFromResponseLookupFunction.java  |   2 +-
 .../navigate}/StateTokenLookupStrategy.java        |   2 +-
 .../context}/navigate/package-info.java            |   7 +-
 .../sp/oidc/messaging/navigate/package-info.java   |  18 ---
 .../java/net/shibboleth/sp/oidc/package-info.java  |   5 +-
 .../shibboleth/sp/oidc/profile}/OIDCSupport.java   |   2 +-
 .../logic/RequestObjectRequiredAndSupported.java   |   2 +-
 .../RequestedACRValidationActivationCondition.java |   2 +-
 .../{ => profile}/config/logic/package-info.java   |   7 +-
 ...uthenticationContextClassRefLookupStrategy.java |   3 +-
 .../AuthorizationEndpointLookupStrategy.java       |   4 +-
 .../navigate}/DisplayParameterLookupStrategy.java  |   3 +-
 .../ForceAuthnParameterLookupStrategy.java         |   3 +-
 .../config/navigate}/LoginHintLookupStrategy.java  |   3 +-
 .../config/navigate}/MaxAgeLookupStrategy.java     |   3 +-
 .../config/navigate}/NonceLookupStrategy.java      |   4 +-
 .../navigate}/PKCEOptionsLookupStrategy.java       |   5 +-
 .../config/navigate}/PromptLookupStrategy.java     |   3 +-
 .../config/navigate/RedirectUriLookupFunction.java |   2 +-
 .../navigate}/RedirectUriLookupStrategy.java       |   3 +-
 .../navigate}/RequestedClaimsLookupStrategy.java   |   3 +-
 .../config/navigate}/ResourceLookupStrategy.java   |   3 +-
 .../navigate}/ResponseModeLookupStrategy.java      |   3 +-
 .../navigate}/ResponseTypeLookupStrategy.java      |   3 +-
 .../config/navigate}/ScopeLookupStrategy.java      |   3 +-
 .../config/navigate}/UiLocalesLookupStrategy.java  |   3 +-
 .../AuthTimeRequestedActivationCondition.java      |   2 +-
 .../context/logic}/package-info.java               |   7 +-
 ...tAgentAndRelyingPartyContextLookupFunction.java |   2 +-
 .../AbstractProviderMetadataLookupFunction.java    |   2 +-
 ...bstractUserInfoTokenResponseLookupStrategy.java |   2 +-
 ...nticationRequestFromOutboundLookupStrategy.java |   2 +-
 .../AuthenticationRequestTimeLookupFunction.java   |   2 +-
 .../navigate/ClientIdBiFunctionLookupStrategy.java |   2 +-
 .../EncryptedUserInfoJWTLookupStrategy.java        |   2 +-
 ...AgeFromAuthenticationRequestLookupFunction.java |   2 +-
 ...omAuthenticationRequestStateLookupStrategy.java |   2 +-
 .../PKCECodeVerifierFromStateLookupStrategy.java   |   2 +-
 .../RedirectUriFromStateLookupStrategy.java        |   2 +-
 .../RequestedACRClaimsFromStateLookupStrategy.java |   2 +-
 ...nfoInUserInfoResponseContextUpdateStrategy.java |   2 +-
 .../navigate/UserInfoJWTLookupStrategy.java        |   2 +-
 .../context/navigate/package-info.java             |   4 +-
 .../shibboleth/sp/oidc/profile/package-info.java   |   5 +-
 .../idp/flows/sp/consumer/oidc/oidc-beans.xml      |  24 +--
 .../idp/flows/sp/initiator/oidc/oidc-beans.xml     |  44 +++---
 .../shibboleth/idp/flows/sp/oidc-common-beans.xml  |   4 +-
 .../impl/DecodeStateAsJsonObjectConsumer.java      | 171 ---------------------
 .../oidc/profile/decoding/impl/package-info.java   |  18 ---
 .../sp/oidc/profile/impl/BuildRequestObject.java   |   5 +-
 ...izeOAuth2ClientAuthenticationMethodHandler.java |   3 +-
 .../impl/InitializeOAuth2ClientContext.java        |   2 +-
 .../sp/oidc/profile/impl/StateLookupStrategy.java  | 147 ------------------
 .../oidc/profile/impl/ValidateResponseState.java   | 114 --------------
 .../AuthTimeRequestedActivationConditionTest.java  |   1 +
 ...nticationContextClassRefLookupStrategyTest.java |   1 +
 ...uthenticationRequestTimeLookupFunctionTest.java |   1 +
 .../impl/CreateAuthenticationStateDataTest.java    |   8 +-
 .../impl/DisplayParameterLookupStrategyTest.java   |   1 +
 .../ForceAuthnParameterLookupStrategyTest.java     |   1 +
 ...romAuthenticationRequestLookupFunctionTest.java |   1 +
 ...uestedACRClaimsFromStateLookupStrategyTest.java |   1 +
 ...uestedACRValidationActivationConditionTest.java |   1 +
 .../impl/RequestedClaimsLookupStrategyTest.java    |   1 +
 .../profile/impl/ResourceLookupStrategyTest.java   |   1 +
 .../oidc/profile/impl/ScopeLookupStrategyTest.java |   1 +
 .../profile/impl/UiLocalesLookupStrategyTest.java  |   1 +
 72 files changed, 151 insertions(+), 566 deletions(-)

diff --git a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/context/package-info.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/context/package-info.java
index 8bb753a..5622da8 100644
--- a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/context/package-info.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/context/package-info.java
@@ -15,4 +15,7 @@
 /**
  * Context classes for RP-specific information needed by profile actions.
  */
-package net.shibboleth.sp.oidc.context;
\ No newline at end of file
+ at NonnullElements
+package net.shibboleth.sp.oidc.context;
+
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/messaging/context/logic/package-info.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/messaging/context/logic/package-info.java
index 1611dca..e36061e 100644
--- a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/messaging/context/logic/package-info.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/messaging/context/logic/package-info.java
@@ -13,6 +13,9 @@
  */
 
 /**
- * Predicates for RP-specific messaging configuration.
+ * Predicates related to message context content.
  */
-package net.shibboleth.sp.oidc.messaging.context.logic;
\ No newline at end of file
+ at NonnullElements
+package net.shibboleth.sp.oidc.messaging.context.logic;
+
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/context/navigate/JWTClaimsSetFromRequestObjectLookupFunction.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/messaging/context/navigate/JWTClaimsSetFromRequestObjectLookupFunction.java
similarity index 98%
rename from sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/context/navigate/JWTClaimsSetFromRequestObjectLookupFunction.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/messaging/context/navigate/JWTClaimsSetFromRequestObjectLookupFunction.java
index 6a81d43..38100aa 100644
--- a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/context/navigate/JWTClaimsSetFromRequestObjectLookupFunction.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/messaging/context/navigate/JWTClaimsSetFromRequestObjectLookupFunction.java
@@ -12,7 +12,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.sp.oidc.context.navigate;
+package net.shibboleth.sp.oidc.messaging.context.navigate;
 
 import java.text.ParseException;
 import java.util.function.Function;
diff --git a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/context/navigate/PayloadFromRequestObjectLookupFunction.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/messaging/context/navigate/PayloadFromRequestObjectLookupFunction.java
similarity index 98%
rename from sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/context/navigate/PayloadFromRequestObjectLookupFunction.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/messaging/context/navigate/PayloadFromRequestObjectLookupFunction.java
index bd5e1ca..be43312 100644
--- a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/context/navigate/PayloadFromRequestObjectLookupFunction.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/messaging/context/navigate/PayloadFromRequestObjectLookupFunction.java
@@ -13,7 +13,7 @@
  */
 
 
-package net.shibboleth.sp.oidc.context.navigate;
+package net.shibboleth.sp.oidc.messaging.context.navigate;
 
 import java.text.ParseException;
 import java.util.function.Function;
diff --git a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/context/navigate/RequestObjectTokenUpdateStrategy.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/messaging/context/navigate/RequestObjectTokenUpdateStrategy.java
similarity index 97%
rename from sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/context/navigate/RequestObjectTokenUpdateStrategy.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/messaging/context/navigate/RequestObjectTokenUpdateStrategy.java
index 902e612..e87187a 100644
--- a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/context/navigate/RequestObjectTokenUpdateStrategy.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/messaging/context/navigate/RequestObjectTokenUpdateStrategy.java
@@ -12,7 +12,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.sp.oidc.context.navigate;
+package net.shibboleth.sp.oidc.messaging.context.navigate;
 
 import java.util.function.BiConsumer;
 import java.util.function.Function;
diff --git a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/messaging/navigate/StateFromResponseLookupFunction.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/messaging/context/navigate/StateFromResponseLookupFunction.java
similarity index 96%
rename from sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/messaging/navigate/StateFromResponseLookupFunction.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/messaging/context/navigate/StateFromResponseLookupFunction.java
index 7c3e1da..c63c4ec 100644
--- a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/messaging/navigate/StateFromResponseLookupFunction.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/messaging/context/navigate/StateFromResponseLookupFunction.java
@@ -12,7 +12,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.sp.oidc.messaging.navigate;
+package net.shibboleth.sp.oidc.messaging.context.navigate;
 
 import java.util.function.Function;
 
diff --git a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/StateTokenLookupStrategy.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/messaging/context/navigate/StateTokenLookupStrategy.java
similarity index 97%
rename from sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/StateTokenLookupStrategy.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/messaging/context/navigate/StateTokenLookupStrategy.java
index f906585..8ee195d 100644
--- a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/StateTokenLookupStrategy.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/messaging/context/navigate/StateTokenLookupStrategy.java
@@ -12,7 +12,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.sp.oidc.profile.impl;
+package net.shibboleth.sp.oidc.messaging.context.navigate;
 
 import java.util.function.Function;
 
diff --git a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/config/navigate/package-info.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/messaging/context/navigate/package-info.java
similarity index 75%
copy from sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/config/navigate/package-info.java
copy to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/messaging/context/navigate/package-info.java
index bd6680b..97e8276 100644
--- a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/config/navigate/package-info.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/messaging/context/navigate/package-info.java
@@ -13,6 +13,9 @@
  */
 
 /**
- * Functions to navigate into profile configuration information.
+ * Functions to navigate message contexts.
  */
-package net.shibboleth.sp.oidc.config.navigate;
\ No newline at end of file
+ at NonnullElements
+package net.shibboleth.sp.oidc.messaging.context.navigate;
+
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/messaging/navigate/package-info.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/messaging/navigate/package-info.java
deleted file mode 100644
index 042a52e..0000000
--- a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/messaging/navigate/package-info.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Functions to navigate into profile messages.
- */
-package net.shibboleth.sp.oidc.messaging.navigate;
\ No newline at end of file
diff --git a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/package-info.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/package-info.java
index a72d8e5..5892c82 100644
--- a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/package-info.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/package-info.java
@@ -15,4 +15,7 @@
 /**
  * Supporting APIs and classes for OIDC protocol support in the SP Hub.
  */
-package net.shibboleth.sp.oidc;
\ No newline at end of file
+ at NonnullElements
+package net.shibboleth.sp.oidc;
+
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/OIDCSupport.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/OIDCSupport.java
similarity index 98%
rename from sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/OIDCSupport.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/OIDCSupport.java
index 0a1b586..2d5ff6d 100644
--- a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/OIDCSupport.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/OIDCSupport.java
@@ -12,7 +12,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.sp.oidc.profile.impl;
+package net.shibboleth.sp.oidc.profile;
 
 import java.security.SecureRandom;
 
diff --git a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/config/logic/RequestObjectRequiredAndSupported.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/logic/RequestObjectRequiredAndSupported.java
similarity index 98%
rename from sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/config/logic/RequestObjectRequiredAndSupported.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/logic/RequestObjectRequiredAndSupported.java
index 68d3532..f21e071 100644
--- a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/config/logic/RequestObjectRequiredAndSupported.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/logic/RequestObjectRequiredAndSupported.java
@@ -12,7 +12,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.sp.oidc.config.logic;
+package net.shibboleth.sp.oidc.profile.config.logic;
 
 import java.util.function.Function;
 
diff --git a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/RequestedACRValidationActivationCondition.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/logic/RequestedACRValidationActivationCondition.java
similarity index 98%
rename from sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/RequestedACRValidationActivationCondition.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/logic/RequestedACRValidationActivationCondition.java
index 02f38b3..ac7df65 100644
--- a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/RequestedACRValidationActivationCondition.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/logic/RequestedACRValidationActivationCondition.java
@@ -12,7 +12,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.sp.oidc.profile.impl;
+package net.shibboleth.sp.oidc.profile.config.logic;
 
 import java.util.function.BiPredicate;
 import java.util.function.Function;
diff --git a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/config/logic/package-info.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/logic/package-info.java
similarity index 76%
rename from sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/config/logic/package-info.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/logic/package-info.java
index c5f560e..c1b9580 100644
--- a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/config/logic/package-info.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/logic/package-info.java
@@ -13,6 +13,9 @@
  */
 
 /**
- * Predicates for RP-specific messaging configuration.
+ * Predicates for configuration logic.
  */
-package net.shibboleth.sp.oidc.config.logic;
\ No newline at end of file
+ at NonnullElements
+package net.shibboleth.sp.oidc.profile.config.logic;
+
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/AuthenticationContextClassRefLookupStrategy.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/AuthenticationContextClassRefLookupStrategy.java
similarity index 95%
rename from sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/AuthenticationContextClassRefLookupStrategy.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/AuthenticationContextClassRefLookupStrategy.java
index 9282310..53d8bd2 100644
--- a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/AuthenticationContextClassRefLookupStrategy.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/AuthenticationContextClassRefLookupStrategy.java
@@ -12,7 +12,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.sp.oidc.profile.impl;
+package net.shibboleth.sp.oidc.profile.config.navigate;
 
 import java.security.Principal;
 import java.util.List;
@@ -32,6 +32,7 @@ import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.shared.primitive.LoggerFactory;
 import net.shibboleth.sp.ddf.DDF;
 import net.shibboleth.sp.oidc.profile.OIDCInitiatorConstants;
+import net.shibboleth.sp.oidc.profile.context.navigate.AbstractAgentAndRelyingPartyContextLookupFunction;
 
 
 /**
diff --git a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/AuthorizationEndpointLookupStrategy.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/AuthorizationEndpointLookupStrategy.java
similarity index 89%
rename from sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/AuthorizationEndpointLookupStrategy.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/AuthorizationEndpointLookupStrategy.java
index 988f8ad..3234e83 100644
--- a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/AuthorizationEndpointLookupStrategy.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/AuthorizationEndpointLookupStrategy.java
@@ -12,7 +12,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.sp.oidc.profile.impl;
+package net.shibboleth.sp.oidc.profile.config.navigate;
 
 import java.net.URI;
 
@@ -22,6 +22,8 @@ import org.opensaml.messaging.context.MessageContext;
 
 import com.nimbusds.openid.connect.sdk.op.OIDCProviderMetadata;
 
+import net.shibboleth.sp.oidc.profile.context.navigate.AbstractProviderMetadataLookupFunction;
+
 /**
  * Get the OAuth 2.0 authorization endpoint from the OpenID Provider metadata.
  */
diff --git a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/DisplayParameterLookupStrategy.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/DisplayParameterLookupStrategy.java
similarity index 91%
rename from sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/DisplayParameterLookupStrategy.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/DisplayParameterLookupStrategy.java
index dd54868..0d11bf2 100644
--- a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/DisplayParameterLookupStrategy.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/DisplayParameterLookupStrategy.java
@@ -12,7 +12,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.sp.oidc.profile.impl;
+package net.shibboleth.sp.oidc.profile.config.navigate;
 
 import javax.annotation.Nullable;
 
@@ -21,6 +21,7 @@ import org.opensaml.messaging.context.MessageContext;
 import net.shibboleth.oidc.profile.config.OIDCAuthenticationRelyingPartyProfileConfiguration;
 import net.shibboleth.sp.ddf.DDF;
 import net.shibboleth.sp.oidc.profile.OIDCInitiatorConstants;
+import net.shibboleth.sp.oidc.profile.context.navigate.AbstractAgentAndRelyingPartyContextLookupFunction;
 
 /**
  * Retrieve the 'display' parameter from either the {@link DDF} if present, or the profile configuration.
diff --git a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/ForceAuthnParameterLookupStrategy.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/ForceAuthnParameterLookupStrategy.java
similarity index 94%
rename from sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/ForceAuthnParameterLookupStrategy.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/ForceAuthnParameterLookupStrategy.java
index 1ec550c..0690312 100644
--- a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/ForceAuthnParameterLookupStrategy.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/ForceAuthnParameterLookupStrategy.java
@@ -12,7 +12,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.sp.oidc.profile.impl;
+package net.shibboleth.sp.oidc.profile.config.navigate;
 
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
@@ -25,6 +25,7 @@ import net.shibboleth.oidc.profile.config.OIDCAuthorizationConfiguration;
 import net.shibboleth.shared.primitive.LoggerFactory;
 import net.shibboleth.sp.ddf.DDF;
 import net.shibboleth.sp.oidc.profile.OIDCInitiatorConstants;
+import net.shibboleth.sp.oidc.profile.context.navigate.AbstractAgentAndRelyingPartyContextLookupFunction;
 
 /**
  * Retrieve the ForceAuthn parameter. 
diff --git a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/LoginHintLookupStrategy.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/LoginHintLookupStrategy.java
similarity index 93%
rename from sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/LoginHintLookupStrategy.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/LoginHintLookupStrategy.java
index 3d23a25..ed0d19c 100644
--- a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/LoginHintLookupStrategy.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/LoginHintLookupStrategy.java
@@ -12,7 +12,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.sp.oidc.profile.impl;
+package net.shibboleth.sp.oidc.profile.config.navigate;
 
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
@@ -25,6 +25,7 @@ import net.shibboleth.oidc.profile.config.OIDCAuthorizationConfiguration;
 import net.shibboleth.shared.primitive.LoggerFactory;
 import net.shibboleth.sp.ddf.DDF;
 import net.shibboleth.sp.oidc.profile.OIDCInitiatorConstants;
+import net.shibboleth.sp.oidc.profile.context.navigate.AbstractAgentAndRelyingPartyContextLookupFunction;
 
 /**
  * Retrieve the 'login_hint' parameter from the {@link DDF} if it is present and
diff --git a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/MaxAgeLookupStrategy.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/MaxAgeLookupStrategy.java
similarity index 92%
rename from sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/MaxAgeLookupStrategy.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/MaxAgeLookupStrategy.java
index 3f9b409..861a57d 100644
--- a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/MaxAgeLookupStrategy.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/MaxAgeLookupStrategy.java
@@ -12,7 +12,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.sp.oidc.profile.impl;
+package net.shibboleth.sp.oidc.profile.config.navigate;
 
 import java.time.Duration;
 
@@ -23,6 +23,7 @@ import org.opensaml.messaging.context.MessageContext;
 import net.shibboleth.oidc.profile.config.OIDCAuthenticationRelyingPartyProfileConfiguration;
 import net.shibboleth.sp.ddf.DDF;
 import net.shibboleth.sp.oidc.profile.OIDCInitiatorConstants;
+import net.shibboleth.sp.oidc.profile.context.navigate.AbstractAgentAndRelyingPartyContextLookupFunction;
 
 /**
  * Retrieve the max_age parameter from the {@link DDF} if present.
diff --git a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/NonceLookupStrategy.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/NonceLookupStrategy.java
similarity index 90%
rename from sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/NonceLookupStrategy.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/NonceLookupStrategy.java
index 72b949d..214e3f6 100644
--- a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/NonceLookupStrategy.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/NonceLookupStrategy.java
@@ -12,7 +12,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.sp.oidc.profile.impl;
+package net.shibboleth.sp.oidc.profile.config.navigate;
 
 import java.util.function.Function;
 
@@ -20,6 +20,8 @@ import org.opensaml.messaging.context.MessageContext;
 
 import com.nimbusds.openid.connect.sdk.Nonce;
 
+import net.shibboleth.sp.oidc.profile.OIDCSupport;
+
 /**
  * A simple strategy that uses a secure random implementation to generate a nonce of length 16.
  */
diff --git a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/PKCEOptionsLookupStrategy.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/PKCEOptionsLookupStrategy.java
similarity index 90%
rename from sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/PKCEOptionsLookupStrategy.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/PKCEOptionsLookupStrategy.java
index c46f10d..c2b492d 100644
--- a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/PKCEOptionsLookupStrategy.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/PKCEOptionsLookupStrategy.java
@@ -12,7 +12,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.sp.oidc.profile.impl;
+package net.shibboleth.sp.oidc.profile.config.navigate;
 
 import javax.annotation.Nullable;
 
@@ -20,7 +20,8 @@ import org.opensaml.messaging.context.MessageContext;
 import org.opensaml.profile.context.ProfileRequestContext;
 
 import net.shibboleth.oidc.profile.config.OIDCAuthenticationRelyingPartyProfileConfiguration;
-import net.shibboleth.oidc.profile.messaging.handler.impl.PKCEOptions;
+import net.shibboleth.oidc.profile.messaging.PKCEOptions;
+import net.shibboleth.sp.oidc.profile.context.navigate.AbstractAgentAndRelyingPartyContextLookupFunction;
 
 
 /**
diff --git a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/PromptLookupStrategy.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/PromptLookupStrategy.java
similarity index 91%
rename from sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/PromptLookupStrategy.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/PromptLookupStrategy.java
index 5bb7962..3cfc8c4 100644
--- a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/PromptLookupStrategy.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/PromptLookupStrategy.java
@@ -12,7 +12,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.sp.oidc.profile.impl;
+package net.shibboleth.sp.oidc.profile.config.navigate;
 
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
@@ -26,6 +26,7 @@ import com.nimbusds.openid.connect.sdk.Prompt;
 import net.shibboleth.shared.primitive.LoggerFactory;
 import net.shibboleth.sp.ddf.DDF;
 import net.shibboleth.sp.oidc.profile.OIDCInitiatorConstants;
+import net.shibboleth.sp.oidc.profile.context.navigate.AbstractAgentAndRelyingPartyContextLookupFunction;
 
 /**
  * Retrieve the Prompt parameter from the {@link DDF}.
diff --git a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/config/navigate/RedirectUriLookupFunction.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/RedirectUriLookupFunction.java
similarity index 97%
rename from sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/config/navigate/RedirectUriLookupFunction.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/RedirectUriLookupFunction.java
index c0d9a98..8b8dce4 100644
--- a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/config/navigate/RedirectUriLookupFunction.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/RedirectUriLookupFunction.java
@@ -12,7 +12,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.sp.oidc.config.navigate;
+package net.shibboleth.sp.oidc.profile.config.navigate;
 
 import java.net.URI;
 import java.net.URISyntaxException;
diff --git a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/RedirectUriLookupStrategy.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/RedirectUriLookupStrategy.java
similarity index 91%
rename from sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/RedirectUriLookupStrategy.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/RedirectUriLookupStrategy.java
index 72393f5..c604eb7 100644
--- a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/RedirectUriLookupStrategy.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/RedirectUriLookupStrategy.java
@@ -12,7 +12,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.sp.oidc.profile.impl;
+package net.shibboleth.sp.oidc.profile.config.navigate;
 
 import java.net.URI;
 import java.net.URISyntaxException;
@@ -25,6 +25,7 @@ import org.slf4j.Logger;
 
 import net.shibboleth.shared.primitive.LoggerFactory;
 import net.shibboleth.sp.ddf.DDF;
+import net.shibboleth.sp.oidc.profile.context.navigate.AbstractAgentAndRelyingPartyContextLookupFunction;
 import net.shibboleth.sp.profile.InitiatorConstants;
 
 /**
diff --git a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/RequestedClaimsLookupStrategy.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/RequestedClaimsLookupStrategy.java
similarity index 94%
rename from sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/RequestedClaimsLookupStrategy.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/RequestedClaimsLookupStrategy.java
index 31d95ae..ed6b731 100644
--- a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/RequestedClaimsLookupStrategy.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/RequestedClaimsLookupStrategy.java
@@ -12,7 +12,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.sp.oidc.profile.impl;
+package net.shibboleth.sp.oidc.profile.config.navigate;
 
 import java.util.Map;
 
@@ -29,6 +29,7 @@ import net.minidev.json.JSONObject;
 import net.shibboleth.oidc.profile.config.OIDCAuthenticationRelyingPartyProfileConfiguration;
 import net.shibboleth.profile.context.RelyingPartyContext;
 import net.shibboleth.shared.primitive.LoggerFactory;
+import net.shibboleth.sp.oidc.profile.context.navigate.AbstractAgentAndRelyingPartyContextLookupFunction;
 
 
 /**
diff --git a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/ResourceLookupStrategy.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/ResourceLookupStrategy.java
similarity index 96%
rename from sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/ResourceLookupStrategy.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/ResourceLookupStrategy.java
index 2c23690..a1e2a1d 100644
--- a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/ResourceLookupStrategy.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/ResourceLookupStrategy.java
@@ -12,7 +12,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.sp.oidc.profile.impl;
+package net.shibboleth.sp.oidc.profile.config.navigate;
 
 import java.net.URI;
 import java.net.URISyntaxException;
@@ -31,6 +31,7 @@ import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.shared.primitive.LoggerFactory;
 import net.shibboleth.sp.ddf.DDF;
 import net.shibboleth.sp.oidc.profile.OIDCInitiatorConstants;
+import net.shibboleth.sp.oidc.profile.context.navigate.AbstractAgentAndRelyingPartyContextLookupFunction;
 
 /**
  * A strategy function that extracts and validates resource indicators from the inbound {@link MessageContext} and 
diff --git a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/ResponseModeLookupStrategy.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/ResponseModeLookupStrategy.java
similarity index 95%
rename from sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/ResponseModeLookupStrategy.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/ResponseModeLookupStrategy.java
index 2cb37a7..a2d07ab 100644
--- a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/ResponseModeLookupStrategy.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/ResponseModeLookupStrategy.java
@@ -12,7 +12,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.sp.oidc.profile.impl;
+package net.shibboleth.sp.oidc.profile.config.navigate;
 
 import javax.annotation.Nullable;
 
@@ -21,6 +21,7 @@ import org.opensaml.messaging.context.MessageContext;
 import com.nimbusds.oauth2.sdk.ResponseMode;
 
 import net.shibboleth.oidc.profile.config.OIDCAuthenticationRelyingPartyProfileConfiguration;
+import net.shibboleth.sp.oidc.profile.context.navigate.AbstractAgentAndRelyingPartyContextLookupFunction;
 
 /**
  * A lookup strategy that resolves an OpenID Connect {@link ResponseMode} from the
diff --git a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/ResponseTypeLookupStrategy.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/ResponseTypeLookupStrategy.java
similarity index 95%
rename from sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/ResponseTypeLookupStrategy.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/ResponseTypeLookupStrategy.java
index 96a54a6..2a05147 100644
--- a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/ResponseTypeLookupStrategy.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/ResponseTypeLookupStrategy.java
@@ -12,7 +12,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.sp.oidc.profile.impl;
+package net.shibboleth.sp.oidc.profile.config.navigate;
 
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
@@ -24,6 +24,7 @@ import org.opensaml.profile.context.navigate.ParentProfileRequestContextLookup;
 import com.nimbusds.oauth2.sdk.ResponseType;
 
 import net.shibboleth.oidc.profile.config.OIDCAuthenticationRelyingPartyProfileConfiguration;
+import net.shibboleth.sp.oidc.profile.context.navigate.AbstractAgentAndRelyingPartyContextLookupFunction;
 
 /**
  *  A lookup strategy that resolves an OpenID Connect {@link ResponseType} from the 
diff --git a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/ScopeLookupStrategy.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/ScopeLookupStrategy.java
similarity index 95%
rename from sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/ScopeLookupStrategy.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/ScopeLookupStrategy.java
index 1cdf217..5ca5b64 100644
--- a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/ScopeLookupStrategy.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/ScopeLookupStrategy.java
@@ -12,7 +12,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.sp.oidc.profile.impl;
+package net.shibboleth.sp.oidc.profile.config.navigate;
 
 import java.util.Arrays;
 import java.util.Set;
@@ -30,6 +30,7 @@ import net.shibboleth.shared.primitive.LoggerFactory;
 import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.sp.ddf.DDF;
 import net.shibboleth.sp.oidc.profile.OIDCInitiatorConstants;
+import net.shibboleth.sp.oidc.profile.context.navigate.AbstractAgentAndRelyingPartyContextLookupFunction;
 
 /**
  * A strategy function that extracts Scope from the inbound {@link MessageContext} and returns them as a set of 
diff --git a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/UiLocalesLookupStrategy.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/UiLocalesLookupStrategy.java
similarity index 92%
rename from sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/UiLocalesLookupStrategy.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/UiLocalesLookupStrategy.java
index 1bf60b9..e31ef15 100644
--- a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/UiLocalesLookupStrategy.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/config/navigate/UiLocalesLookupStrategy.java
@@ -12,7 +12,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.sp.oidc.profile.impl;
+package net.shibboleth.sp.oidc.profile.config.navigate;
 
 import java.util.Arrays;
 import java.util.List;
@@ -23,6 +23,7 @@ import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.sp.ddf.DDF;
 import net.shibboleth.sp.oidc.profile.OIDCInitiatorConstants;
+import net.shibboleth.sp.oidc.profile.context.navigate.AbstractAgentAndRelyingPartyContextLookupFunction;
 
 /**
  * A strategy function that extracts ui_locales from the inbound {@link MessageContext} and returns them as a List of 
diff --git a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/AuthTimeRequestedActivationCondition.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/logic/AuthTimeRequestedActivationCondition.java
similarity index 98%
rename from sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/AuthTimeRequestedActivationCondition.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/logic/AuthTimeRequestedActivationCondition.java
index c347b08..3680b9c 100644
--- a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/AuthTimeRequestedActivationCondition.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/logic/AuthTimeRequestedActivationCondition.java
@@ -12,7 +12,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.sp.oidc.profile.impl;
+package net.shibboleth.sp.oidc.profile.context.logic;
 
 import java.util.function.BiPredicate;
 import java.util.function.Function;
diff --git a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/config/navigate/package-info.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/logic/package-info.java
similarity index 75%
copy from sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/config/navigate/package-info.java
copy to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/logic/package-info.java
index bd6680b..a9ad30d 100644
--- a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/config/navigate/package-info.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/logic/package-info.java
@@ -13,6 +13,9 @@
  */
 
 /**
- * Functions to navigate into profile configuration information.
+ * Predicates related to profile context content.
  */
-package net.shibboleth.sp.oidc.config.navigate;
\ No newline at end of file
+ at NonnullElements
+package net.shibboleth.sp.oidc.profile.context.logic;
+
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/AbstractAgentAndRelyingPartyContextLookupFunction.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/AbstractAgentAndRelyingPartyContextLookupFunction.java
similarity index 99%
rename from sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/AbstractAgentAndRelyingPartyContextLookupFunction.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/AbstractAgentAndRelyingPartyContextLookupFunction.java
index 306a711..09c84c7 100644
--- a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/AbstractAgentAndRelyingPartyContextLookupFunction.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/AbstractAgentAndRelyingPartyContextLookupFunction.java
@@ -12,7 +12,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.sp.oidc.profile.impl;
+package net.shibboleth.sp.oidc.profile.context.navigate;
 
 import java.util.function.Function;
 
diff --git a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/AbstractProviderMetadataLookupFunction.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/AbstractProviderMetadataLookupFunction.java
similarity index 98%
rename from sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/AbstractProviderMetadataLookupFunction.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/AbstractProviderMetadataLookupFunction.java
index e4609d5..d1a7620 100644
--- a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/AbstractProviderMetadataLookupFunction.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/AbstractProviderMetadataLookupFunction.java
@@ -12,7 +12,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.sp.oidc.profile.impl;
+package net.shibboleth.sp.oidc.profile.context.navigate;
 
 import java.util.function.Function;
 
diff --git a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/context/navigate/AbstractUserInfoTokenResponseLookupStrategy.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/AbstractUserInfoTokenResponseLookupStrategy.java
similarity index 97%
rename from sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/context/navigate/AbstractUserInfoTokenResponseLookupStrategy.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/AbstractUserInfoTokenResponseLookupStrategy.java
index 6492be9..5f2c15d 100644
--- a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/context/navigate/AbstractUserInfoTokenResponseLookupStrategy.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/AbstractUserInfoTokenResponseLookupStrategy.java
@@ -12,7 +12,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.sp.oidc.context.navigate;
+package net.shibboleth.sp.oidc.profile.context.navigate;
 
 import java.util.function.Function;
 
diff --git a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/context/navigate/AuthenticationRequestFromOutboundLookupStrategy.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/AuthenticationRequestFromOutboundLookupStrategy.java
similarity index 96%
rename from sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/context/navigate/AuthenticationRequestFromOutboundLookupStrategy.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/AuthenticationRequestFromOutboundLookupStrategy.java
index 4b29a8b..1db7c43 100644
--- a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/context/navigate/AuthenticationRequestFromOutboundLookupStrategy.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/AuthenticationRequestFromOutboundLookupStrategy.java
@@ -12,7 +12,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.sp.oidc.context.navigate;
+package net.shibboleth.sp.oidc.profile.context.navigate;
 
 import java.util.function.Function;
 
diff --git a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/AuthenticationRequestTimeLookupFunction.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/AuthenticationRequestTimeLookupFunction.java
similarity index 98%
rename from sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/AuthenticationRequestTimeLookupFunction.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/AuthenticationRequestTimeLookupFunction.java
index e1f4d0e..3b9c994 100644
--- a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/AuthenticationRequestTimeLookupFunction.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/AuthenticationRequestTimeLookupFunction.java
@@ -12,7 +12,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.sp.oidc.profile.impl;
+package net.shibboleth.sp.oidc.profile.context.navigate;
 
 import java.time.Duration;
 import java.time.Instant;
diff --git a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/context/navigate/ClientIdBiFunctionLookupStrategy.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/ClientIdBiFunctionLookupStrategy.java
similarity index 96%
rename from sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/context/navigate/ClientIdBiFunctionLookupStrategy.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/ClientIdBiFunctionLookupStrategy.java
index 2c8138d..74bbd7d 100644
--- a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/context/navigate/ClientIdBiFunctionLookupStrategy.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/ClientIdBiFunctionLookupStrategy.java
@@ -12,7 +12,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.sp.oidc.context.navigate;
+package net.shibboleth.sp.oidc.profile.context.navigate;
 
 import java.util.function.BiFunction;
 import java.util.function.Function;
diff --git a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/context/navigate/EncryptedUserInfoJWTLookupStrategy.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/EncryptedUserInfoJWTLookupStrategy.java
similarity index 98%
rename from sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/context/navigate/EncryptedUserInfoJWTLookupStrategy.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/EncryptedUserInfoJWTLookupStrategy.java
index 7ea0dc4..232fbca 100644
--- a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/context/navigate/EncryptedUserInfoJWTLookupStrategy.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/EncryptedUserInfoJWTLookupStrategy.java
@@ -12,7 +12,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.sp.oidc.context.navigate;
+package net.shibboleth.sp.oidc.profile.context.navigate;
 
 import java.util.function.Function;
 
diff --git a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/MaxAgeFromAuthenticationRequestLookupFunction.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/MaxAgeFromAuthenticationRequestLookupFunction.java
similarity index 98%
rename from sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/MaxAgeFromAuthenticationRequestLookupFunction.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/MaxAgeFromAuthenticationRequestLookupFunction.java
index bfddd25..28f47df 100644
--- a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/MaxAgeFromAuthenticationRequestLookupFunction.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/MaxAgeFromAuthenticationRequestLookupFunction.java
@@ -12,7 +12,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.sp.oidc.profile.impl;
+package net.shibboleth.sp.oidc.profile.context.navigate;
 
 import java.time.Duration;
 import java.util.function.Function;
diff --git a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/NonceFromAuthenticationRequestStateLookupStrategy.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/NonceFromAuthenticationRequestStateLookupStrategy.java
similarity index 98%
rename from sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/NonceFromAuthenticationRequestStateLookupStrategy.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/NonceFromAuthenticationRequestStateLookupStrategy.java
index ebdf8f9..0de6b58 100644
--- a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/NonceFromAuthenticationRequestStateLookupStrategy.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/NonceFromAuthenticationRequestStateLookupStrategy.java
@@ -12,7 +12,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.sp.oidc.profile.impl;
+package net.shibboleth.sp.oidc.profile.context.navigate;
 
 import java.util.function.BiFunction;
 import java.util.function.Function;
diff --git a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/PKCECodeVerifierFromStateLookupStrategy.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/PKCECodeVerifierFromStateLookupStrategy.java
similarity index 97%
rename from sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/PKCECodeVerifierFromStateLookupStrategy.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/PKCECodeVerifierFromStateLookupStrategy.java
index 8bc15d8..903534f 100644
--- a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/PKCECodeVerifierFromStateLookupStrategy.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/PKCECodeVerifierFromStateLookupStrategy.java
@@ -12,7 +12,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.sp.oidc.profile.impl;
+package net.shibboleth.sp.oidc.profile.context.navigate;
 
 import java.util.function.Function;
 
diff --git a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/RedirectUriFromStateLookupStrategy.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/RedirectUriFromStateLookupStrategy.java
similarity index 98%
rename from sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/RedirectUriFromStateLookupStrategy.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/RedirectUriFromStateLookupStrategy.java
index 8739d86..ac13ac5 100644
--- a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/RedirectUriFromStateLookupStrategy.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/RedirectUriFromStateLookupStrategy.java
@@ -12,7 +12,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.sp.oidc.profile.impl;
+package net.shibboleth.sp.oidc.profile.context.navigate;
 
 import java.net.URI;
 import java.net.URISyntaxException;
diff --git a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/RequestedACRClaimsFromStateLookupStrategy.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/RequestedACRClaimsFromStateLookupStrategy.java
similarity index 98%
rename from sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/RequestedACRClaimsFromStateLookupStrategy.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/RequestedACRClaimsFromStateLookupStrategy.java
index 232e43b..ed411de 100644
--- a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/RequestedACRClaimsFromStateLookupStrategy.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/RequestedACRClaimsFromStateLookupStrategy.java
@@ -12,7 +12,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.sp.oidc.profile.impl;
+package net.shibboleth.sp.oidc.profile.context.navigate;
 
 import java.util.List;
 import java.util.Objects;
diff --git a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/context/navigate/UserInfoInUserInfoResponseContextUpdateStrategy.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/UserInfoInUserInfoResponseContextUpdateStrategy.java
similarity index 97%
rename from sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/context/navigate/UserInfoInUserInfoResponseContextUpdateStrategy.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/UserInfoInUserInfoResponseContextUpdateStrategy.java
index 0110089..86b6750 100644
--- a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/context/navigate/UserInfoInUserInfoResponseContextUpdateStrategy.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/UserInfoInUserInfoResponseContextUpdateStrategy.java
@@ -12,7 +12,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.sp.oidc.context.navigate;
+package net.shibboleth.sp.oidc.profile.context.navigate;
 
 import java.util.function.BiConsumer;
 import java.util.function.Function;
diff --git a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/context/navigate/UserInfoJWTLookupStrategy.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/UserInfoJWTLookupStrategy.java
similarity index 98%
rename from sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/context/navigate/UserInfoJWTLookupStrategy.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/UserInfoJWTLookupStrategy.java
index 951857a..71be3be 100644
--- a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/context/navigate/UserInfoJWTLookupStrategy.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/UserInfoJWTLookupStrategy.java
@@ -12,7 +12,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.sp.oidc.context.navigate;
+package net.shibboleth.sp.oidc.profile.context.navigate;
 
 import java.util.function.Function;
 
diff --git a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/context/navigate/package-info.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/package-info.java
similarity index 84%
rename from sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/context/navigate/package-info.java
rename to sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/package-info.java
index 518fced..003192f 100644
--- a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/context/navigate/package-info.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/context/navigate/package-info.java
@@ -13,6 +13,6 @@
  */
 
 /**
- * Functions that navigate messaging contexts.
+ * Functions that navigate profile contexts.
  */
-package net.shibboleth.sp.oidc.context.navigate;
\ No newline at end of file
+package net.shibboleth.sp.oidc.profile.context.navigate;
\ No newline at end of file
diff --git a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/package-info.java b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/package-info.java
index f05bf07..19dd645 100644
--- a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/package-info.java
+++ b/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/profile/package-info.java
@@ -15,4 +15,7 @@
 /**
  * API classes for SP profile actions.
  */
-package net.shibboleth.sp.oidc.profile;
\ No newline at end of file
+ at NonnullElements
+package net.shibboleth.sp.oidc.profile;
+
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
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 bf089e1..d2921cd 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
@@ -39,7 +39,7 @@
         p:stateDataClass="net.shibboleth.sp.oidc.profile.AuthenticationRequestStateData"
         p:createOutputObjects="true"/>
     
-    <bean id="OAuthStateLookup" class="net.shibboleth.sp.oidc.messaging.navigate.StateFromResponseLookupFunction"/>
+    <bean id="OAuthStateLookup" class="net.shibboleth.sp.oidc.messaging.context.navigate.StateFromResponseLookupFunction"/>
 
 
     <bean id="ValidateAuthenticationResponseResult" scope="prototype"
@@ -124,11 +124,11 @@
         p:providerMetadataLookupStrategy-ref="shibboleth.ChildLookup.OIDCProviderMetadataContextFromInboundMessageContext"
         p:oAuth2ClientAuthenticationContextLookupStrategy-ref="shibboleth.ChildLookupOrCreate.OAuth2ClientAuthenticationContextFromInboundMessageContext">
         <property name="redirectUriLookupStrategy">
-             <bean class="net.shibboleth.sp.oidc.profile.impl.RedirectUriFromStateLookupStrategy" scope="prototype" 
+             <bean class="net.shibboleth.sp.oidc.profile.context.navigate.RedirectUriFromStateLookupStrategy" scope="prototype" 
              c:stateDataContextLookupStrategy-ref="shibboleth.ChildLookup.StateDataContextFromInbound"/>   
         </property>
         <property name="pkceCodeVerifierLookupStrategy">
-             <bean class="net.shibboleth.sp.oidc.profile.impl.PKCECodeVerifierFromStateLookupStrategy" scope="prototype" 
+             <bean class="net.shibboleth.sp.oidc.profile.context.navigate.PKCECodeVerifierFromStateLookupStrategy" scope="prototype" 
              c:stateDataContextLookupStrategy-ref="shibboleth.ChildLookup.StateDataContextFromInbound"/>   
         </property>  
     </bean>
@@ -313,7 +313,7 @@
         class="net.shibboleth.oidc.security.jwt.claims.impl.NonceValidationActivationCondition" />
 
      <bean id="DefaultNonceLookupStrategy" scope="prototype"
-        class="net.shibboleth.sp.oidc.profile.impl.NonceFromAuthenticationRequestStateLookupStrategy" />
+        class="net.shibboleth.sp.oidc.profile.context.navigate.NonceFromAuthenticationRequestStateLookupStrategy" />
 
     <bean id="OIDCMetadataContextChildLookup" class="org.opensaml.messaging.context.navigate.ChildContextLookup"
         c:type="#{ T(net.shibboleth.oidc.metadata.context.OIDCMetadataContext) }" />
@@ -343,16 +343,16 @@
                                 getObject('DefaultAuthTimeActivationCondition')}"/>
                                 
    <bean id="MaxAgeLookupFunction" scope="prototype"
-        class="net.shibboleth.sp.oidc.profile.impl.MaxAgeFromAuthenticationRequestLookupFunction"
+        class="net.shibboleth.sp.oidc.profile.context.navigate.MaxAgeFromAuthenticationRequestLookupFunction"
         c:maxAgeDefault="%{sp.oidc.idtoken.jwt.verifier.authnLifetime:PT60S}"/>
         
    <bean id="AuthenticationRequestTimeLookupFunction" scope="prototype"
-        class="net.shibboleth.sp.oidc.profile.impl.AuthenticationRequestTimeLookupFunction"
+        class="net.shibboleth.sp.oidc.profile.context.navigate.AuthenticationRequestTimeLookupFunction"
         p:clockSkew="%{sp.oidc.idtoken.jwt.verifier.authnRequestClockSkew:PT0S}"
         p:stateDataContextLookupStrategy-ref="shibboleth.ChildLookup.StateDataContextFromInbound"/> 
 
    <bean id="DefaultAuthTimeActivationCondition" scope="prototype"
-        class="net.shibboleth.sp.oidc.profile.impl.AuthTimeRequestedActivationCondition"
+        class="net.shibboleth.sp.oidc.profile.context.logic.AuthTimeRequestedActivationCondition"
         c:stateDataContextLookupStrategy-ref="shibboleth.ChildLookup.StateDataContextFromInbound"/>
 
  
@@ -363,11 +363,11 @@
                                 getObject('DefaultRequestedACRValidationActivationCondition')}"/>
     
     <bean id="DefaultRequestedACRClaimLookupStrategy" scope="prototype"
-                class="net.shibboleth.sp.oidc.profile.impl.RequestedACRClaimsFromStateLookupStrategy"
+                class="net.shibboleth.sp.oidc.profile.context.navigate.RequestedACRClaimsFromStateLookupStrategy"
                 c:stateDataContextLookupStrategy-ref="shibboleth.ChildLookup.StateDataContextFromInbound"/> 
     
     <bean id="DefaultRequestedACRValidationActivationCondition" scope="prototype"
-        class="net.shibboleth.sp.oidc.profile.impl.RequestedACRValidationActivationCondition"
+        class="net.shibboleth.sp.oidc.profile.config.logic.RequestedACRValidationActivationCondition"
         c:relyingPartyContextLookupStrategy-ref="shibboleth.ChildLookup.RelyingParty"/>
     
     <!-- End ID Token Claims Validation -->
@@ -420,10 +420,10 @@
     
     <bean id="DecryptUserInfoJWE" class="net.shibboleth.oidc.security.impl.DecryptJWE" scope="prototype">
         <property name="jwtTokenLookupStrategy">
-            <bean class="net.shibboleth.sp.oidc.context.navigate.EncryptedUserInfoJWTLookupStrategy"/>
+            <bean class="net.shibboleth.sp.oidc.profile.context.navigate.EncryptedUserInfoJWTLookupStrategy"/>
         </property>
         <property name="jwtUpdateStrategy">
-            <bean class="net.shibboleth.sp.oidc.context.navigate.UserInfoInUserInfoResponseContextUpdateStrategy" />
+            <bean class="net.shibboleth.sp.oidc.profile.context.navigate.UserInfoInUserInfoResponseContextUpdateStrategy" />
         </property>
     </bean>
     
@@ -487,7 +487,7 @@
         p:claimValidators-ref="UserInfoClaimsValidators" />
    
     <bean id="DefaultUserInfoTokenLookupStrategy"
-        class="net.shibboleth.sp.oidc.context.navigate.UserInfoJWTLookupStrategy" />
+        class="net.shibboleth.sp.oidc.profile.context.navigate.UserInfoJWTLookupStrategy" />
 
     <util:list id="UserInfoClaimsValidators" value-type="net.shibboleth.oidc.jwt.claims.ClaimsValidator">
         <ref bean="UserInfoTokenRequiredClaimsValidator" />
diff --git a/sp-oidc-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/initiator/oidc/oidc-beans.xml b/sp-oidc-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/initiator/oidc/oidc-beans.xml
index e05866e..9af5c0a 100644
--- a/sp-oidc-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/initiator/oidc/oidc-beans.xml
+++ b/sp-oidc-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/initiator/oidc/oidc-beans.xml
@@ -62,14 +62,14 @@
                         <bean id="AddResponseType" scope="prototype"
                             class="net.shibboleth.oidc.profile.messaging.handler.impl.AddResponseTypeHandler">
                             <property name="parameterValueLookupStrategy">
-                                <bean class="net.shibboleth.sp.oidc.profile.impl.ResponseTypeLookupStrategy"
+                                <bean class="net.shibboleth.sp.oidc.profile.config.navigate.ResponseTypeLookupStrategy"
                                     scope="prototype" />
                             </property>
                         </bean>
                         <bean id="AddResponseMode" scope="prototype"
                             class="net.shibboleth.oidc.profile.messaging.handler.impl.AddResponseModeHandler">
                             <property name="parameterValueLookupStrategy">
-                                <bean class="net.shibboleth.sp.oidc.profile.impl.ResponseModeLookupStrategy"
+                                <bean class="net.shibboleth.sp.oidc.profile.config.navigate.ResponseModeLookupStrategy"
                                     scope="prototype" />
                             </property>
                         </bean>
@@ -77,28 +77,28 @@
                         <bean id="AddMaxAge" scope="prototype"
                             class="net.shibboleth.oidc.profile.messaging.handler.impl.AddMaxAgeHandler">
                             <property name="parameterValueLookupStrategy">
-                                <bean class="net.shibboleth.sp.oidc.profile.impl.MaxAgeLookupStrategy"
+                                <bean class="net.shibboleth.sp.oidc.profile.config.navigate.MaxAgeLookupStrategy"
                                     scope="prototype" />
                             </property>
                         </bean>
                         <bean id="AddDisplay" scope="prototype"
                             class="net.shibboleth.oidc.profile.messaging.handler.impl.AddDisplayHandler">
                             <property name="parameterValueLookupStrategy">
-                                <bean class="net.shibboleth.sp.oidc.profile.impl.DisplayParameterLookupStrategy"
+                                <bean class="net.shibboleth.sp.oidc.profile.config.navigate.DisplayParameterLookupStrategy"
                                     scope="prototype" />
                             </property>
                         </bean>
                         <bean id="AddScopes" scope="prototype"
                             class="net.shibboleth.oidc.profile.messaging.handler.impl.AddScopesHandler">
                             <property name="parameterValueLookupStrategy">
-                                <bean class="net.shibboleth.sp.oidc.profile.impl.ScopeLookupStrategy"
+                                <bean class="net.shibboleth.sp.oidc.profile.config.navigate.ScopeLookupStrategy"
                                     scope="prototype" />
                             </property>
                         </bean>
                         <bean id="AddNonce" scope="prototype"
                             class="net.shibboleth.oidc.profile.messaging.handler.impl.AddNonceHandler">
                             <property name="parameterValueLookupStrategy">
-                                <bean class="net.shibboleth.sp.oidc.profile.impl.NonceLookupStrategy"
+                                <bean class="net.shibboleth.sp.oidc.profile.config.navigate.NonceLookupStrategy"
                                     scope="prototype" />
                             </property>
                         </bean>
@@ -106,35 +106,35 @@
                             class="net.shibboleth.oidc.profile.messaging.handler.impl.AddEndpointURIHandler">
                             <property name="parameterValueLookupStrategy">
                                 <bean
-                                    class="net.shibboleth.sp.oidc.profile.impl.AuthorizationEndpointLookupStrategy"
+                                    class="net.shibboleth.sp.oidc.profile.config.navigate.AuthorizationEndpointLookupStrategy"
                                     scope="prototype" />
                             </property>
                         </bean>
                         <bean id="AddLoginHintHandler" scope="prototype"
                             class="net.shibboleth.oidc.profile.messaging.handler.impl.AddLoginHintHandler">
                             <property name="parameterValueLookupStrategy">
-                                <bean class="net.shibboleth.sp.oidc.profile.impl.LoginHintLookupStrategy"
+                                <bean class="net.shibboleth.sp.oidc.profile.config.navigate.LoginHintLookupStrategy"
                                     scope="prototype" />
                             </property>
                         </bean>
                         <bean id="AddRequestedClaims" scope="prototype"
                             class="net.shibboleth.oidc.profile.messaging.handler.impl.AddRequestedClaimsHandler">
                             <property name="parameterValueLookupStrategy">
-                                <bean class="net.shibboleth.sp.oidc.profile.impl.RequestedClaimsLookupStrategy"
+                                <bean class="net.shibboleth.sp.oidc.profile.config.navigate.RequestedClaimsLookupStrategy"
                                     scope="prototype" />
                             </property>
                         </bean>
                         <bean id="AddPKCECodeVerifierAndChallenge" scope="prototype"
                             class="net.shibboleth.oidc.profile.messaging.handler.impl.AddPKCECodeVerifierAndChallenge">
                             <property name="parameterValueLookupStrategy">
-                                <bean class="net.shibboleth.sp.oidc.profile.impl.PKCEOptionsLookupStrategy"
+                                <bean class="net.shibboleth.sp.oidc.profile.config.navigate.PKCEOptionsLookupStrategy"
                                     scope="prototype" />
                             </property>
                         </bean>
                         <bean id="AddRedirectURI" scope="prototype"
                             class="net.shibboleth.oidc.profile.messaging.handler.impl.AddRedirectURIHandler">
                             <property name="parameterValueLookupStrategy">
-                                <bean class="net.shibboleth.sp.oidc.profile.impl.RedirectUriLookupStrategy"
+                                <bean class="net.shibboleth.sp.oidc.profile.config.navigate.RedirectUriLookupStrategy"
                                     scope="prototype" />
                             </property>
                         </bean>
@@ -142,34 +142,34 @@
                             class="net.shibboleth.oidc.profile.messaging.handler.impl.AddAuthenticationContextClassReferencesHandler">
                             <property name="parameterValueLookupStrategy">
                                 <bean
-                                    class="net.shibboleth.sp.oidc.profile.impl.AuthenticationContextClassRefLookupStrategy"
+                                    class="net.shibboleth.sp.oidc.profile.config.navigate.AuthenticationContextClassRefLookupStrategy"
                                     scope="prototype" />
                             </property>
                         </bean>
                         <bean id="AddForceAuthentication" scope="prototype"
                             class="net.shibboleth.oidc.profile.messaging.handler.impl.AddForceAuthenticationHandler">
                             <property name="ParameterValueLookupStrategy">
-                                <bean class="net.shibboleth.sp.oidc.profile.impl.ForceAuthnParameterLookupStrategy" />
+                                <bean class="net.shibboleth.sp.oidc.profile.config.navigate.ForceAuthnParameterLookupStrategy" />
                             </property>
                         </bean>
                         <bean id="AddPrompt" scope="prototype"
                             class="net.shibboleth.oidc.profile.messaging.handler.impl.AddPromptHandler">
                             <property name="parameterValueLookupStrategy">
-                                <bean class="net.shibboleth.sp.oidc.profile.impl.PromptLookupStrategy"
+                                <bean class="net.shibboleth.sp.oidc.profile.config.navigate.PromptLookupStrategy"
                                     scope="prototype" />
                             </property>
                         </bean>
                         <bean id="AddResourceIndicators" scope="prototype"
                             class="net.shibboleth.oidc.profile.messaging.handler.impl.AddResourceHandler">
                             <property name="parameterValueLookupStrategy">
-                                <bean class="net.shibboleth.sp.oidc.profile.impl.ResourceLookupStrategy"
+                                <bean class="net.shibboleth.sp.oidc.profile.config.navigate.ResourceLookupStrategy"
                                     scope="prototype" />
                             </property>
                         </bean>
                         <bean id="AddUiLocales" scope="prototype"
                             class="net.shibboleth.oidc.profile.messaging.handler.impl.AddUiLocalesHandler">
                             <property name="parameterValueLookupStrategy">
-                                <bean class="net.shibboleth.sp.oidc.profile.impl.UiLocalesLookupStrategy"
+                                <bean class="net.shibboleth.sp.oidc.profile.config.navigate.UiLocalesLookupStrategy"
                                     scope="prototype" />
                             </property>
                         </bean>
@@ -183,7 +183,7 @@
     </bean>
 
     <bean id="RequestObjectRequiredAndSupportedPredicate" scope="prototype"
-        class="net.shibboleth.sp.oidc.config.logic.RequestObjectRequiredAndSupported" />
+        class="net.shibboleth.sp.oidc.profile.config.logic.RequestObjectRequiredAndSupported" />
 
     <bean id="PopulateRequestObjectSignatureSigningParameters" scope="prototype"
         class="net.shibboleth.oidc.profile.impl.PopulateJWTSignatureSigningParameters"
@@ -305,7 +305,7 @@
                 <bean id="AddState" class="net.shibboleth.oidc.profile.messaging.handler.impl.AddStateHandler"
                     scope="prototype">
                     <property name="parameterValueLookupStrategy">
-                        <bean class="net.shibboleth.sp.oidc.profile.impl.StateTokenLookupStrategy" scope="prototype"
+                        <bean class="net.shibboleth.sp.oidc.messaging.context.navigate.StateTokenLookupStrategy" scope="prototype"
                         c:stateDataContextLookupStrategy-ref="shibboleth.ChildLookup.StateDataContextFromOutbound"/>
                     </property>
                 </bean>
@@ -318,10 +318,10 @@
                     scope="prototype" p:logName="RequestObject">
                     <property name="claimsToSignLookupStrategy">
                         <bean
-                            class="net.shibboleth.sp.oidc.context.navigate.JWTClaimsSetFromRequestObjectLookupFunction" />
+                            class="net.shibboleth.sp.oidc.messaging.context.navigate.JWTClaimsSetFromRequestObjectLookupFunction" />
                     </property>
                     <property name="jwtUpdateConsumer">
-                        <bean class="net.shibboleth.sp.oidc.context.navigate.RequestObjectTokenUpdateStrategy" />
+                        <bean class="net.shibboleth.sp.oidc.messaging.context.navigate.RequestObjectTokenUpdateStrategy" />
                     </property>
                 </bean>
 
@@ -329,10 +329,10 @@
                     scope="prototype" p:logName="RequestObject">
                     <property name="payloadToEncryptLookupStrategy">
                         <bean
-                            class="net.shibboleth.sp.oidc.context.navigate.PayloadFromRequestObjectLookupFunction" />
+                            class="net.shibboleth.sp.oidc.messaging.context.navigate.PayloadFromRequestObjectLookupFunction" />
                     </property>
                     <property name="jwtUpdateConsumer">
-                        <bean class="net.shibboleth.sp.oidc.context.navigate.RequestObjectTokenUpdateStrategy" />
+                        <bean class="net.shibboleth.sp.oidc.messaging.context.navigate.RequestObjectTokenUpdateStrategy" />
                     </property>
                 </bean>
                 <bean id="SetAuthenticationRequestTime"
diff --git a/sp-oidc-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/oidc-common-beans.xml b/sp-oidc-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/oidc-common-beans.xml
index cf87cb0..a5aa408 100644
--- a/sp-oidc-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/oidc-common-beans.xml
+++ b/sp-oidc-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/oidc-common-beans.xml
@@ -89,10 +89,10 @@
         c:type="#{ T(net.shibboleth.oidc.profile.context.OAuth2ClientContext) }" />
         
    <bean id="shibboleth.AuthenticationRequestLookup.FromOutbound"
-        class="net.shibboleth.sp.oidc.context.navigate.AuthenticationRequestFromOutboundLookupStrategy" />
+        class="net.shibboleth.sp.oidc.profile.context.navigate.AuthenticationRequestFromOutboundLookupStrategy" />
     
     <!-- Add BiFunction for use with validators that find the clientId from the sp.issuer  -->
-    <bean id="shibboleth.ClientIdLookup.BiFunction" class="net.shibboleth.sp.oidc.context.navigate.ClientIdBiFunctionLookupStrategy">
+    <bean id="shibboleth.ClientIdLookup.BiFunction" class="net.shibboleth.sp.oidc.profile.context.navigate.ClientIdBiFunctionLookupStrategy">
         <constructor-arg ref="shibboleth.ClientIdLookup.Simple"/>
     </bean>
     
diff --git a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/decoding/impl/DecodeStateAsJsonObjectConsumer.java b/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/decoding/impl/DecodeStateAsJsonObjectConsumer.java
deleted file mode 100644
index 71d322f..0000000
--- a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/decoding/impl/DecodeStateAsJsonObjectConsumer.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.shibboleth.sp.oidc.profile.decoding.impl;
-
-import java.nio.charset.StandardCharsets;
-import java.util.function.Function;
-import java.util.function.Predicate;
-
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-
-import org.opensaml.messaging.context.MessageContext;
-import org.opensaml.profile.context.ProfileRequestContext;
-import org.opensaml.profile.context.navigate.ParentProfileRequestContextLookup;
-import org.slf4j.Logger;
-
-import com.nimbusds.oauth2.sdk.id.State;
-import com.nimbusds.openid.connect.sdk.AuthenticationResponse;
-
-import net.minidev.json.JSONObject;
-import net.minidev.json.JSONValue;
-import net.minidev.json.parser.ParseException;
-import net.shibboleth.shared.codec.Base64Support;
-import net.shibboleth.shared.codec.DecodingException;
-import net.shibboleth.shared.component.AbstractIdentifiableInitializableComponent;
-import net.shibboleth.shared.logic.Constraint;
-import net.shibboleth.shared.logic.PredicateSupport;
-import net.shibboleth.shared.primitive.LoggerFactory;
-import net.shibboleth.shared.security.DataSealer;
-import net.shibboleth.shared.security.DataSealerException;
-import net.shibboleth.sp.oidc.context.OAuthStateContext;
-
-/**
- * Decodes the OAuth 2.0 state parameter from the {@link AuthenticationResponse} message
- * into a {@link JSONObject}. The state parameter is assumed to be base64 encoded.
- * 
- * <p>If sealing is enabled, unwrap the state using the {@link DataSealer} provided. </p>
- *
- * <p>Returns true if the operation was successful. Returns false if the state cannot be decoded or parsed into a 
- * valid JSON object.</p>
- */
-public class DecodeStateAsJsonObjectConsumer extends AbstractIdentifiableInitializableComponent 
-            implements Function<MessageContext, Boolean> {
-    
-    /** Lookup function for parent ProfileRequestContext. */
-    @Nonnull private static final ParentProfileRequestContextLookup<MessageContext> PRC_LOOKUP
-        = new ParentProfileRequestContextLookup<>();
-    
-    /** Class logger. */
-    @Nonnull private final Logger log = LoggerFactory.getLogger(DecodeStateAsJsonObjectConsumer.class);
-    
-    
-    /** Optional data sealer to use. */
-    @Nullable private DataSealer dataSealer;
-    
-    /** 
-     * If the dataSealer is provided should it be used to unwrap the state? Defaults to true, 
-     * that is, if the dataSealer is provided, always attempt to unwrap the state.
-     */
-    @Nonnull private Predicate<ProfileRequestContext> unsealState;
-    
-    /** Constructor.*/
-    public DecodeStateAsJsonObjectConsumer() {
-        unsealState = PredicateSupport.alwaysTrue();
-    }
-    
-    /**
-     * Sets {@link DataSealer} to use.
-     * 
-     * @param sealer data sealer
-     */
-    public void setDataSealer(@Nullable final DataSealer sealer) {
-        checkSetterPreconditions();
-        
-        dataSealer = sealer;
-    }
-    
-    /**
-     * Set the predicate to determine whether to unseal the state.
-     * 
-     * @param predicate the seal state predicate to set.
-     */
-    public void setUnsealStatePredicate(@Nonnull final Predicate<ProfileRequestContext> predicate) {
-        checkSetterPreconditions();
-        
-        unsealState = Constraint.isNotNull(predicate, "Seal state predicate can not be null");
-    }
-    
-    /**
-     * Set the flag to determine whether to unseal the state.
-     * 
-     * @param flag the flag to set.
-     */
-    public void setUnsealState(final boolean flag) {
-        checkSetterPreconditions();
-        
-        unsealState = flag ? PredicateSupport.alwaysTrue() : PredicateSupport.alwaysFalse();
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public Boolean apply(@Nullable final MessageContext messageContext) {
-
-        if (messageContext == null || !(messageContext.getMessage() instanceof final AuthenticationResponse response)) {
-            log.debug("Unable to decode OAuth state into a JSON token, no authentication response");
-            return false;
-        }
-    
-        final State responseState = response.getState();
-        if (responseState == null) {
-            log.debug("Unable to decode OAuth state into a JSON token, no state in response");
-            return false;
-        }
-    
-        try {
-
-            final String stateValue = responseState.getValue();
-            assert stateValue != null;            
-            Object stateObjectParsed = null;
-            
-            // If sealed or not sealed, we base64 URL decode the state value first. This therefore assumes the state
-            // value is always base64 encoded. In the case of sealed state, the sealed value is also base64 (non-url)
-            // encoded, so we base64 URL decode to return back to the base64 encoded value to unwrap.
-            final byte[] decodedBytes = Base64Support.decodeURLSafe(stateValue);
-            
-            final var localDataSealer = dataSealer;
-            if (localDataSealer != null && unsealState.test(PRC_LOOKUP.apply(messageContext))) {
-                final String decodedString = new String(decodedBytes, StandardCharsets.UTF_8);
-                log.trace("Attempting to unseal state value '{}'", decodedString);
-                final String unwrapped = localDataSealer.unwrap(decodedString);
-                log.trace("Unwrapped state '{}'", unwrapped);
-                stateObjectParsed = JSONValue.parseWithException(unwrapped);
-            } else {        
-                final String decodedString = new String(decodedBytes, StandardCharsets.UTF_8);
-                stateObjectParsed = JSONValue.parseWithException(decodedString);
-
-            }            
-
-            
-            if (!(stateObjectParsed instanceof JSONObject)) {
-                log.debug("OAuth state did not decode to a JSON object");
-                return false;
-            }
-            final JSONObject jsonState = (JSONObject) stateObjectParsed;                
-            log.trace("Decoded JSON state '{}'", stateObjectParsed);
-
-            messageContext.ensureSubcontext(OAuthStateContext.class)
-                .setState(responseState.getValue())
-                .setStateJson(jsonState);
-            
-        } catch (final DecodingException | ParseException | DataSealerException e) {
-            log.debug("Unable to decode OAuth state into a JSON token", e);
-            return false;
-        }
-        return true;
-        
-    }    
-
-}
diff --git a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/decoding/impl/package-info.java b/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/decoding/impl/package-info.java
deleted file mode 100644
index cf16baa..0000000
--- a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/decoding/impl/package-info.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * OIDC profile decoding implementation classes.
- */
-package net.shibboleth.sp.oidc.profile.decoding.impl;
\ No newline at end of file
diff --git a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/BuildRequestObject.java b/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/BuildRequestObject.java
index 41b3225..f8e55e9 100644
--- a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/BuildRequestObject.java
+++ b/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/BuildRequestObject.java
@@ -58,8 +58,7 @@ import net.shibboleth.shared.primitive.LoggerFactory;
  * {@link OIDCAuthenticationRequest} located under {@link ProfileRequestContext#getOutboundMessageContext()}.
  * 
  * <p>Note, some parameters are set downstream in the flow before the request object is signed and or encrypted. 
- * These parameters are only available to the HTTP Controller e.g. state, and must be set during the external
- * authentication redirect.</p>
+ * These parameters are only available at that stage e.g. state.</p>
  * 
  * @event {@link org.opensaml.profile.action.EventIds#PROCEED_EVENT_ID}
  * @event {@link EventIds#INVALID_MSG_CTX}
@@ -113,8 +112,6 @@ public class BuildRequestObject extends AbstractProfileAction {
      * Set a bi-consumer hook to add custom claims to the request object.
      * 
      * @param strategy The custom claims strategy to set.
-     * 
-     * @since 2.1.0
      */
     public void setCustomClaimsStrategy(@Nullable final BiConsumer<ProfileRequestContext, ClaimsSet> strategy) {
         checkSetterPreconditions();
diff --git a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/InitializeOAuth2ClientAuthenticationMethodHandler.java b/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/InitializeOAuth2ClientAuthenticationMethodHandler.java
index 38e4e79..82c318f 100644
--- a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/InitializeOAuth2ClientAuthenticationMethodHandler.java
+++ b/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/InitializeOAuth2ClientAuthenticationMethodHandler.java
@@ -62,10 +62,11 @@ import net.shibboleth.shared.annotation.constraint.NonnullBeforeExec;
 import net.shibboleth.shared.logic.Constraint;
 import net.shibboleth.shared.primitive.LoggerFactory;
 import net.shibboleth.shared.primitive.StringSupport;
+import net.shibboleth.sp.oidc.profile.OIDCSupport;
 
 /**
  * An {@link AbstractMessageHandler action} that resolves the Client Authentication method for the chosen 
- * upstream OpenID Provider (issuer) from the profile configuration, and adds it to the 
+ * OpenID Provider (issuer) from the profile configuration, and adds it to the 
  * {@link OAuth2ClientAuthenticationContext}. 
  *
  * <p>If a JWT client authentication type, the security parameters context is used to create a signed JWT 
diff --git a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/InitializeOAuth2ClientContext.java b/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/InitializeOAuth2ClientContext.java
index 770bf53..55ca76d 100644
--- a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/InitializeOAuth2ClientContext.java
+++ b/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/InitializeOAuth2ClientContext.java
@@ -37,7 +37,7 @@ import net.shibboleth.shared.annotation.constraint.NonnullBeforeExec;
 import net.shibboleth.shared.logic.Constraint;
 import net.shibboleth.shared.primitive.LoggerFactory;
 import net.shibboleth.shared.primitive.StringSupport;
-import net.shibboleth.sp.oidc.config.navigate.RedirectUriLookupFunction;
+import net.shibboleth.sp.oidc.profile.config.navigate.RedirectUriLookupFunction;
 import net.shibboleth.sp.profile.AbstractAgentAction;
 
 /**
diff --git a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/StateLookupStrategy.java b/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/StateLookupStrategy.java
deleted file mode 100644
index 053b523..0000000
--- a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/StateLookupStrategy.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.shibboleth.sp.oidc.profile.impl;
-
-import java.nio.charset.StandardCharsets;
-import java.util.function.Predicate;
-
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-
-import org.opensaml.messaging.context.MessageContext;
-import org.opensaml.profile.context.ProfileRequestContext;
-import org.opensaml.profile.context.navigate.ParentProfileRequestContextLookup;
-import org.slf4j.Logger;
-
-import net.minidev.json.JSONObject;
-import net.minidev.json.JSONValue;
-import net.shibboleth.oidc.profile.core.StateToken;
-import net.shibboleth.shared.codec.Base64Support;
-import net.shibboleth.shared.codec.EncodingException;
-import net.shibboleth.shared.logic.Constraint;
-import net.shibboleth.shared.logic.PredicateSupport;
-import net.shibboleth.shared.primitive.LoggerFactory;
-import net.shibboleth.shared.security.DataSealer;
-import net.shibboleth.shared.security.DataSealerException;
-import net.shibboleth.sp.ddf.DDF;
-import net.shibboleth.sp.oidc.profile.OIDCConstants;
-import net.shibboleth.sp.profile.SPConstants;
-
-/**
- * A strategy function that constructs a Base64URL encoded JSON object containing a state value from the input 
- * {@link DDF} and a cryptographically secure request forgery protection value for CSRF protection.
- *
- * <p>The JSON Object includes the following:</p>
- * <ul>
- *   <li><b>state</b>: The value of {@code SPConstants.STATE} from the input DDF.</li>
- *   <li><b>rfp</b>: A securely generated random string (32 characters).</li>
- * </ul>
-*/
-public class StateLookupStrategy extends AbstractAgentAndRelyingPartyContextLookupFunction<StateToken> {
-    
-    /** Lookup function for parent ProfileRequestContext. */
-    @Nonnull private static final ParentProfileRequestContextLookup<MessageContext> PRC_LOOKUP
-        = new ParentProfileRequestContextLookup<>();
-    
-    /** Class logger. */
-    @Nonnull
-    private final Logger log = LoggerFactory.getLogger(StateLookupStrategy.class); 
-    
-    /** Optional data sealer to use. */
-    @Nullable private DataSealer dataSealer;
-    
-    /** 
-     * If the dataSealer is provided should it be used to seal the authentication request state? Defaults to true, 
-     * that is, if the dataSealer is provided, always seal state.
-     */
-    @Nonnull private Predicate<ProfileRequestContext> sealState;
-    
-    /** Constructor.*/
-    public StateLookupStrategy() {
-        sealState = PredicateSupport.alwaysTrue();
-    }
-    
-    /**
-     * Sets {@link DataSealer} to use.
-     * 
-     * @param sealer data sealer
-     */
-    public void setDataSealer(@Nullable final DataSealer sealer) {        
-        dataSealer = sealer;
-    }
-    
-    /**
-     * Set the predicate to determine whether to seal the state.
-     * 
-     * @param predicate the seal state predicate to set.
-     */
-    public void setSealStatePredicate(@Nonnull final Predicate<ProfileRequestContext> predicate) {
-        sealState = Constraint.isNotNull(predicate, "Seal state predicate can not be null");
-    }
-    
-    /**
-     * Set the flag to determine whether to seal the state.
-     * 
-     * @param flag the flag to set.
-     */
-    public void setSealState(final boolean flag) {
-        sealState = flag ? PredicateSupport.alwaysTrue() : PredicateSupport.alwaysFalse();
-    }
-     
-
-    /** {@inheritDoc} */
-    @Override
-    public StateToken apply(final MessageContext messageCtx) {  
-        final DDF input = getDDF(messageCtx, DDFDirection.INPUT);
-        if (input == null) {
-            return null;
-        }
-        
-        final JSONObject stateObject = new JSONObject();
-        stateObject.appendField(OIDCConstants.STATE_FIELD, input.getmember(SPConstants.STATE).string());
-        stateObject.appendField(OIDCConstants.RFP_FIELD, OIDCSupport.generateRandom(32));
-        final String stateJsonString = stateObject.toJSONString(JSONValue.COMPRESSION);
-        if (stateJsonString == null || stateJsonString.isEmpty()) {
-            return null;
-        }
-        try {
-            final DataSealer localDataSealer = dataSealer;
-            if (localDataSealer != null && sealState.test(PRC_LOOKUP.apply(messageCtx))) {
-                log.trace("Sealing OAuth state");
-                final String wrapped = localDataSealer.wrap(stateJsonString);
-                final byte[] wrappedAsBytes = wrapped.getBytes(StandardCharsets.UTF_8);
-                if (wrappedAsBytes == null) {
-                    log.error("Unable to seal OAuth state, wrapped bytes are empty");
-                    return null;
-                }
-                // The data sealer base64 encodes the sealed output, we base64 URL encode the base64 encoded output
-                // for transport in the URL.
-                return new StateToken(Base64Support.encodeURLSafe(wrappedAsBytes), stateObject);
-            }
-            log.warn("OAuth state was NOT sealed, either DataSealer is not configured or "
-                    + "sealing predicate returned false. Sealing should be enabled in production");
-           
-            final byte[] stateJsonAsBytes = stateJsonString.getBytes(StandardCharsets.UTF_8);
-            assert stateJsonAsBytes != null;
-            final String serializedValue = Base64Support.encodeURLSafe(stateJsonAsBytes);
-            return new StateToken(serializedValue, stateObject);
-        } catch (final EncodingException | DataSealerException e) {
-            log.error("Unable to generate OAuth state", e);
-            return null;
-        }
-
-    }
-
-}
diff --git a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/ValidateResponseState.java b/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/ValidateResponseState.java
deleted file mode 100644
index a3a5aef..0000000
--- a/sp-oidc-impl/src/main/java/net/shibboleth/sp/oidc/profile/impl/ValidateResponseState.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.shibboleth.sp.oidc.profile.impl;
-
-import java.util.function.Function;
-
-import javax.annotation.Nonnull;
-
-import org.opensaml.profile.action.ActionSupport;
-import org.opensaml.profile.action.EventIds;
-import org.opensaml.profile.context.ProfileRequestContext;
-import org.slf4j.Logger;
-
-import net.shibboleth.shared.annotation.constraint.NonnullAfterInit;
-import net.shibboleth.shared.component.ComponentInitializationException;
-import net.shibboleth.shared.logic.Constraint;
-import net.shibboleth.shared.primitive.LoggerFactory;
-import net.shibboleth.shared.primitive.StringSupport;
-import net.shibboleth.sp.profile.AbstractApplicationAction;
-
-/**
- * An action that validates that the request forgery protection (RFP) nonce in the OAuth 2.0 state parameter in the 
- * response matches that recovered from the stored RFP nonce in the correlation cookie. 
- */
-public class ValidateResponseState extends AbstractApplicationAction {
-    
-    /** Class logger. */
-    @Nonnull private final Logger log = LoggerFactory.getLogger(ValidateResponseState.class);
-    
-    /** Lookup strategy for the RFP value stored in the OAuth state parameter. */
-    @NonnullAfterInit private Function<ProfileRequestContext,String> rfpTokenFromOAuthStateLookupStrategy;
-    
-    /** 
-     * Lookup strategy to obtain the RFP value stored against the users session in a cookie. This represents
-     * the RFP value that was sent in the initial request.
-     */
-    @NonnullAfterInit private Function<ProfileRequestContext, String> rfpFromCookieLookupStrategy;
-    
-    /** {@inheritDoc} */
-    @Override
-    protected void doInitialize() throws ComponentInitializationException {
-        super.doInitialize();
-        
-        if (rfpFromCookieLookupStrategy == null) {
-            throw new ComponentInitializationException("Request forgery token lookup strategy from cookie "
-                    + "cannot be null");
-        }
-        if (rfpTokenFromOAuthStateLookupStrategy == null) {
-            throw new ComponentInitializationException("Request forgery token lookup strategy from OAuth state"
-                    + " cannot be null");
-        }
-    } 
-    
-    /**
-     * Sets the lookup strategy to obtain the RFP value stored in the OAuth state
-     * parameter.
-     * 
-     * @param strategy
-     *            lookup strategy
-     */
-    public void setRfpTokenFromOAuthStateLookupStrategy(final Function<ProfileRequestContext, String> strategy) {
-        checkSetterPreconditions();
-        rfpTokenFromOAuthStateLookupStrategy = Constraint.isNotNull(strategy,
-                "RFP token from oAuth state lookup strategy can not be null");
-    }
-    /**
-     * Set the lookup strategy to obtain the RFP value stored against the users session in a cookie. 
-     * 
-     * @param strategy lookup strategy
-     */
-    public void setRfpFromCookieLookupStrategy(final Function<ProfileRequestContext, String> strategy) {
-        checkSetterPreconditions();
-        rfpFromCookieLookupStrategy = Constraint.isNotNull(strategy,
-                "RFP from cookie lookup strategy can not be null");
-    }
-    
-    @Override
-    protected void doExecute(@Nonnull final ProfileRequestContext profileRequestContext) {
-        
-        final String rfpFromCorrelationCookie = rfpFromCookieLookupStrategy.apply(profileRequestContext);        
-        final String rfpFromStateParam = rfpTokenFromOAuthStateLookupStrategy.apply(profileRequestContext);
-
-        if (StringSupport.trimOrNull(rfpFromCorrelationCookie) == null || 
-                StringSupport.trimOrNull(rfpFromStateParam)  == null) {
-            log.error("{} Required OAuth state data was missing from the request or response, "
-                    + "state is required",getLogPrefix());
-            ActionSupport.buildEvent(profileRequestContext, EventIds.MESSAGE_PROC_ERROR);
-            return;
-        }
-        assert rfpFromCorrelationCookie != null;
-        if (!rfpFromCorrelationCookie.equals(rfpFromStateParam)) {
-            log.error("{} Request state did not match response state, has it been tampered with!",
-                    getLogPrefix());
-            ActionSupport.buildEvent(profileRequestContext, EventIds.MESSAGE_PROC_ERROR);
-            return;
-        } 
-        // else state is fine.
-        log.debug("{} OAuth 2.0 request and response state match, continuing",getLogPrefix()); 
-        
-    }
-
-}
diff --git a/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/AuthTimeRequestedActivationConditionTest.java b/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/AuthTimeRequestedActivationConditionTest.java
index 8c442e5..ff35c12 100644
--- a/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/AuthTimeRequestedActivationConditionTest.java
+++ b/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/AuthTimeRequestedActivationConditionTest.java
@@ -25,6 +25,7 @@ import com.nimbusds.jwt.JWTClaimsSet;
 import net.shibboleth.shared.component.ComponentInitializationException;
 import net.shibboleth.sp.context.StateDataContext;
 import net.shibboleth.sp.oidc.profile.AuthenticationRequestStateData;
+import net.shibboleth.sp.oidc.profile.context.logic.AuthTimeRequestedActivationCondition;
 import net.shibboleth.sp.profile.impl.BaseApplicationActionTest;
 
 /**
diff --git a/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/AuthenticationContextClassRefLookupStrategyTest.java b/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/AuthenticationContextClassRefLookupStrategyTest.java
index 02e1eea..72d6bb6 100644
--- a/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/AuthenticationContextClassRefLookupStrategyTest.java
+++ b/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/AuthenticationContextClassRefLookupStrategyTest.java
@@ -31,6 +31,7 @@ import net.shibboleth.shared.component.ComponentInitializationException;
 import net.shibboleth.sp.ddf.DDF;
 import net.shibboleth.sp.messaging.RemotedHttpServletRequest;
 import net.shibboleth.sp.oidc.profile.OIDCInitiatorConstants;
+import net.shibboleth.sp.oidc.profile.config.navigate.AuthenticationContextClassRefLookupStrategy;
 import net.shibboleth.sp.profile.InitiatorConstants;
 import net.shibboleth.sp.profile.SPConstants;
 
diff --git a/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/AuthenticationRequestTimeLookupFunctionTest.java b/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/AuthenticationRequestTimeLookupFunctionTest.java
index 91b862f..0d035a0 100644
--- a/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/AuthenticationRequestTimeLookupFunctionTest.java
+++ b/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/AuthenticationRequestTimeLookupFunctionTest.java
@@ -25,6 +25,7 @@ import org.testng.annotations.Test;
 
 import net.shibboleth.sp.context.StateDataContext;
 import net.shibboleth.sp.oidc.profile.AuthenticationRequestStateData;
+import net.shibboleth.sp.oidc.profile.context.navigate.AuthenticationRequestTimeLookupFunction;
 
 /**
  * Tests for {@link AuthenticationRequestTimeLookupFunction}.
diff --git a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/config/navigate/package-info.java b/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/CreateAuthenticationStateDataTest.java
similarity index 79%
rename from sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/config/navigate/package-info.java
rename to sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/CreateAuthenticationStateDataTest.java
index bd6680b..0129b63 100644
--- a/sp-oidc-api/src/main/java/net/shibboleth/sp/oidc/config/navigate/package-info.java
+++ b/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/CreateAuthenticationStateDataTest.java
@@ -12,7 +12,11 @@
  * limitations under the License.
  */
 
+package net.shibboleth.sp.oidc.profile.impl;
+
 /**
- * Functions to navigate into profile configuration information.
+ * Tests for {@link CreateAuthenticationStateData}.
  */
-package net.shibboleth.sp.oidc.config.navigate;
\ No newline at end of file
+public class CreateAuthenticationStateDataTest {
+
+}
diff --git a/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/DisplayParameterLookupStrategyTest.java b/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/DisplayParameterLookupStrategyTest.java
index 4827412..4f1a849 100644
--- a/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/DisplayParameterLookupStrategyTest.java
+++ b/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/DisplayParameterLookupStrategyTest.java
@@ -25,6 +25,7 @@ import net.shibboleth.shared.component.ComponentInitializationException;
 import net.shibboleth.sp.ddf.DDF;
 import net.shibboleth.sp.messaging.RemotedHttpServletRequest;
 import net.shibboleth.sp.oidc.profile.OIDCInitiatorConstants;
+import net.shibboleth.sp.oidc.profile.config.navigate.DisplayParameterLookupStrategy;
 import net.shibboleth.sp.profile.InitiatorConstants;
 import net.shibboleth.sp.profile.SPConstants;
 
diff --git a/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/ForceAuthnParameterLookupStrategyTest.java b/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/ForceAuthnParameterLookupStrategyTest.java
index 0588a5f..6b28231 100644
--- a/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/ForceAuthnParameterLookupStrategyTest.java
+++ b/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/ForceAuthnParameterLookupStrategyTest.java
@@ -26,6 +26,7 @@ import net.shibboleth.shared.component.ComponentInitializationException;
 import net.shibboleth.sp.ddf.DDF;
 import net.shibboleth.sp.messaging.RemotedHttpServletRequest;
 import net.shibboleth.sp.oidc.profile.OIDCInitiatorConstants;
+import net.shibboleth.sp.oidc.profile.config.navigate.ForceAuthnParameterLookupStrategy;
 import net.shibboleth.sp.profile.InitiatorConstants;
 import net.shibboleth.sp.profile.SPConstants;
 
diff --git a/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/MaxAgeFromAuthenticationRequestLookupFunctionTest.java b/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/MaxAgeFromAuthenticationRequestLookupFunctionTest.java
index 7148fe1..e28f472 100644
--- a/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/MaxAgeFromAuthenticationRequestLookupFunctionTest.java
+++ b/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/MaxAgeFromAuthenticationRequestLookupFunctionTest.java
@@ -25,6 +25,7 @@ import net.shibboleth.oidc.profile.config.impl.DefaultOIDCAuthorizationConfigura
 import net.shibboleth.profile.context.RelyingPartyContext;
 import net.shibboleth.sp.context.StateDataContext;
 import net.shibboleth.sp.oidc.profile.AuthenticationRequestStateData;
+import net.shibboleth.sp.oidc.profile.context.navigate.MaxAgeFromAuthenticationRequestLookupFunction;
 
 /**
  * Tests for {@link MaxAgeFromAuthenticationRequestLookupFunction}.
diff --git a/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/RequestedACRClaimsFromStateLookupStrategyTest.java b/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/RequestedACRClaimsFromStateLookupStrategyTest.java
index aabcfb9..c80732d 100644
--- a/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/RequestedACRClaimsFromStateLookupStrategyTest.java
+++ b/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/RequestedACRClaimsFromStateLookupStrategyTest.java
@@ -27,6 +27,7 @@ import org.testng.annotations.Test;
 import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.sp.context.StateDataContext;
 import net.shibboleth.sp.oidc.profile.AuthenticationRequestStateData;
+import net.shibboleth.sp.oidc.profile.context.navigate.RequestedACRClaimsFromStateLookupStrategy;
 import net.shibboleth.sp.profile.impl.BaseApplicationActionTest;
 
 /**
diff --git a/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/RequestedACRValidationActivationConditionTest.java b/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/RequestedACRValidationActivationConditionTest.java
index a2ba5aa..1e13927 100644
--- a/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/RequestedACRValidationActivationConditionTest.java
+++ b/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/RequestedACRValidationActivationConditionTest.java
@@ -23,6 +23,7 @@ import org.testng.annotations.Test;
 import net.shibboleth.oidc.profile.config.impl.DefaultOIDCAuthorizationConfiguration;
 import net.shibboleth.profile.context.RelyingPartyContext;
 import net.shibboleth.shared.component.ComponentInitializationException;
+import net.shibboleth.sp.oidc.profile.config.logic.RequestedACRValidationActivationCondition;
 import net.shibboleth.sp.profile.impl.BaseApplicationActionTest;
 
 /**
diff --git a/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/RequestedClaimsLookupStrategyTest.java b/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/RequestedClaimsLookupStrategyTest.java
index 67738e5..ac21832 100644
--- a/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/RequestedClaimsLookupStrategyTest.java
+++ b/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/RequestedClaimsLookupStrategyTest.java
@@ -30,6 +30,7 @@ import net.shibboleth.shared.component.ComponentInitializationException;
 import net.shibboleth.shared.logic.FunctionSupport;
 import net.shibboleth.sp.ddf.DDF;
 import net.shibboleth.sp.messaging.RemotedHttpServletRequest;
+import net.shibboleth.sp.oidc.profile.config.navigate.RequestedClaimsLookupStrategy;
 import net.shibboleth.sp.profile.InitiatorConstants;
 import net.shibboleth.sp.profile.SPConstants;
 
diff --git a/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/ResourceLookupStrategyTest.java b/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/ResourceLookupStrategyTest.java
index 50722b5..e8d4b73 100644
--- a/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/ResourceLookupStrategyTest.java
+++ b/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/ResourceLookupStrategyTest.java
@@ -29,6 +29,7 @@ import net.shibboleth.shared.component.ComponentInitializationException;
 import net.shibboleth.sp.ddf.DDF;
 import net.shibboleth.sp.messaging.RemotedHttpServletRequest;
 import net.shibboleth.sp.oidc.profile.OIDCInitiatorConstants;
+import net.shibboleth.sp.oidc.profile.config.navigate.ResourceLookupStrategy;
 import net.shibboleth.sp.profile.InitiatorConstants;
 import net.shibboleth.sp.profile.SPConstants;
 
diff --git a/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/ScopeLookupStrategyTest.java b/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/ScopeLookupStrategyTest.java
index 2922baf..5aca255 100644
--- a/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/ScopeLookupStrategyTest.java
+++ b/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/ScopeLookupStrategyTest.java
@@ -29,6 +29,7 @@ import net.shibboleth.shared.logic.FunctionSupport;
 import net.shibboleth.sp.ddf.DDF;
 import net.shibboleth.sp.messaging.RemotedHttpServletRequest;
 import net.shibboleth.sp.oidc.profile.OIDCInitiatorConstants;
+import net.shibboleth.sp.oidc.profile.config.navigate.ScopeLookupStrategy;
 import net.shibboleth.sp.profile.InitiatorConstants;
 import net.shibboleth.sp.profile.SPConstants;
 
diff --git a/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/UiLocalesLookupStrategyTest.java b/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/UiLocalesLookupStrategyTest.java
index 46c742e..7a0f4fa 100644
--- a/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/UiLocalesLookupStrategyTest.java
+++ b/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/UiLocalesLookupStrategyTest.java
@@ -27,6 +27,7 @@ import net.shibboleth.shared.component.ComponentInitializationException;
 import net.shibboleth.sp.ddf.DDF;
 import net.shibboleth.sp.messaging.RemotedHttpServletRequest;
 import net.shibboleth.sp.oidc.profile.OIDCInitiatorConstants;
+import net.shibboleth.sp.oidc.profile.config.navigate.UiLocalesLookupStrategy;
 import net.shibboleth.sp.profile.InitiatorConstants;
 import net.shibboleth.sp.profile.SPConstants;
 

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


More information about the commits mailing list