[java-idp-plugin-oidc-rp] branch main updated: JOIDCRP-41 - Upgrade for IdP V5 compatibility
Phil Smart
philip.smart at jisc.ac.uk
Mon Jul 17 13:30:35 UTC 2023
This is an automated email from the git hooks/post-receive script.
philsmart pushed a commit to branch main
in repository java-idp-plugin-oidc-rp.
View the commit online:
http://git.shibboleth.net/view/?p=java-idp-plugin-oidc-rp.git;a=commit;h=d0b5b619e96b776b8cbf852ad2a834a58ed9a372
The following commit(s) were added to refs/heads/main by this push:
new d0b5b61 JOIDCRP-41 - Upgrade for IdP V5 compatibility
d0b5b61 is described below
commit d0b5b619e96b776b8cbf852ad2a834a58ed9a372
Author: Phil Smart <philip.smart at jisc.ac.uk>
AuthorDate: Mon Jul 17 14:30:27 2023 +0100
JOIDCRP-41 - Upgrade for IdP V5 compatibility
- Update HttpClient to V5
- Change to jakarta namespace
- net.shibboleth.utilities.java.support -> net.shibboleth.shared
- net.shibboleth.ext.spring -> net.shibboleth.shared.spring
- Update internal dependencies
- Update Relying Party configuration for tests
- Remove repositories from POM
Still need to upgrade deprecated method calls.
https://shibboleth.atlassian.net/browse/JOIDCRP-41
---
idp-oidc-rp-api/pom.xml | 16 +-
.../navigate/ExtraAudiencesLookupStrategy.java | 8 +-
.../rp/config/navigate/MaxAgeLookupFunction.java | 10 +-
...viderMetadataStringListValueLookupFunction.java | 4 +-
.../config/navigate/RedirectUriLookupFunction.java | 6 +-
.../UserInfoHttpRequestMethodLookupStrategy.java | 6 +-
.../oidc/rp/context/EndUserClaimsContext.java | 2 +-
.../authn/oidc/rp/context/OAuth2ClientContext.java | 4 +-
.../authn/oidc/rp/context/OIDCAuthnContext.java | 2 +-
.../rp/context/OutboundMessageHandlerContext.java | 2 +-
.../AbstractTokenResponseLookupStrategy.java | 2 +-
...bstractUserInfoTokenResponseLookupStrategy.java | 2 +-
.../navigate/AccessTokenLookupStrategy.java | 2 +-
.../AuthenticationRequestTimeLookupFunction.java | 2 +-
.../ClientIDFromOAuth2ClientContextFunction.java | 4 +-
.../DefaultEndUserClaimsLookupStrategy.java | 4 +-
.../navigate/DefaultIDTokenLookupStrategy.java | 2 +-
.../navigate/DefaultUserInfoJWTLookupStrategy.java | 2 +-
.../navigate/EncryptedIDTokenLookupStrategy.java | 2 +-
.../EncryptedUserInfoJWTLookupStrategy.java | 2 +-
.../IDTokenInAccessTokenUpdateStrategy.java | 4 +-
.../navigate/IDTokenJOSEHeaderLookupStrategy.java | 2 +-
.../navigate/RequestObjectTokenUpdateStrategy.java | 2 +-
.../navigate/SubFromIDTokenLookupFunction.java | 2 +-
...nfoInUserInfoResponseContextUpdateStrategy.java | 2 +-
.../AbstractUserInfoResponseTypeCondition.java | 2 +-
...earerTokenForClientAuthenticationPredicate.java | 6 +-
.../logic/RequestObjectRequiredAndSupported.java | 6 +-
.../RequiresSignatureVerificationPredicate.java | 8 +-
.../context/logic/UserInfoLookupCondition.java | 2 +-
...WTClaimsSetFromRequestObjectLookupFunction.java | 2 +-
.../PayloadFromRequestObjectLookupFunction.java | 2 +-
.../rp/principal/OAuth2AccessTokenPrincipal.java | 6 +-
.../rp/principal/OAuth2RefreshTokenPrincipal.java | 6 +-
.../principal/OIDCSubjectIdentifierPrincipal.java | 9 +-
.../navigate/DefaultIssuerIDLookupFunction.java | 47 --
.../RequestObjectRequiredAndSupportedTest.java | 2 +-
...RequiresSignatureVerificationPredicateTest.java | 2 +-
idp-oidc-rp-dist/pom.xml | 2 +-
idp-oidc-rp-impl/pom.xml | 90 ++--
.../idp/plugin/authn/oidc/rp/OIDCRPModule.java | 2 +-
.../idp/plugin/authn/oidc/rp/OIDCRPPlugin.java | 4 +-
.../rp/audit/impl/FixedStringAuditExtractor.java | 6 +-
.../impl/AbstractJSONResponseDecoderFunction.java | 14 +-
.../impl/DefaultAccessTokenResponseDecoder.java | 16 +-
.../impl/DefaultUserInfoResponseDecoder.java | 25 +-
.../impl/AbstractRequestEncoderFunction.java | 16 +-
.../impl/DefaultAuthCodeTokenRequestEncoder.java | 11 +-
.../impl/DefaultUserInfoRequestEncoder.java | 29 +-
.../impl/AbstractHttpOIDCAuthenticationAction.java | 45 +-
.../AbstractOIDCAuthenticationResponseAction.java | 4 +-
...ssTokenToPrivateCredentialsMappingStrategy.java | 2 +-
.../oidc/rp/impl/AuthorizationController.java | 16 +-
.../authn/oidc/rp/impl/BuildRequestObject.java | 6 +-
.../impl/DefaultRedirectUriCreationFunction.java | 18 +-
.../oidc/rp/impl/ExchangeCodeForAccessToken.java | 4 +-
.../rp/impl/InitializeAuthorizationRequest.java | 4 +-
...nitializeOAuth2ClientAuthenticationContext.java | 4 +-
...izeOAuth2ClientAuthenticationMethodHandler.java | 6 +-
.../rp/impl/InitializeOAuth2ClientContext.java | 8 +-
...OutboundAuthorizationRequestMessageContext.java | 6 +-
.../rp/impl/InitializeRelyingPartyContext.java | 6 +-
.../InitializeUnverifiedRelyingPartyContext.java | 6 +-
.../authn/oidc/rp/impl/OIDCProxySupport.java | 2 +-
.../rp/impl/PrepareOIDCInboundMessageContext.java | 8 +-
.../authn/oidc/rp/impl/ProcessEndUserClaims.java | 4 +-
...impleOIDCSubjectIdentifierCanonicalization.java | 2 +-
.../authn/oidc/rp/impl/UserInfoEndpointLookup.java | 4 +-
.../rp/impl/ValidateOAuthAccessTokenResponse.java | 6 +-
.../oidc/rp/impl/ValidateOIDCAuthentication.java | 100 ++---
.../authn/oidc/rp/impl/ValidateResponseState.java | 2 +-
.../authn/oidc/rp/impl/ValidateTokenClaims.java | 8 +-
.../rp/impl/ValidateUserInfoJSONObjectClaims.java | 4 +-
...CAuthenticationRequestActionMessageHandler.java | 10 +-
...actOIDCAuthenticationRequestMessageHandler.java | 4 +-
.../oidc/rp/messaging/impl/AddNonceHandler.java | 4 +-
.../rp/messaging/impl/AddRedirectURIHandler.java | 10 +-
.../messaging/impl/AddRequestedClaimsHandler.java | 2 +-
.../oidc/rp/messaging/impl/AddStateHandler.java | 4 +-
.../impl/OIDCProviderMetadataLookupHandler.java | 12 +-
...henticationRequestNonceClaimLookupStrategy.java | 2 +-
...tAuthenticationConfigurationLookupFunction.java | 44 +-
.../impl/NonceValidationActivationCondition.java | 2 +-
.../META-INF/net.shibboleth.idp/postconfig.xml | 8 +-
.../oidc-relying-party-authn-beans.xml | 30 +-
.../idp/flows/oidc/rp/keyset/keyset-beans.xml | 2 +-
.../DefaultAccessTokenResponseDecoderTest.java | 38 +-
.../impl/DefaultUserInfoResponseDecoderTest.java | 110 ++---
.../NimbusAuthCodeTokenRequestEncoderTest.java | 32 +-
.../authn/oidc/rp/impl/AbstractOIDCTest.java | 16 +-
.../oidc/rp/impl/AuthorizationControllerTest.java | 25 +-
.../authn/oidc/rp/impl/BuildRequestObjectTest.java | 11 +-
.../rp/impl/DefaultClaimMergingStrategyTest.java | 2 +-
.../DefaultRedirectUriCreationFunctionTest.java | 4 +-
.../rp/impl/ExchangeCodeForAccessTokenTest.java | 58 +--
...MockAsymmetricJOSEObjectCredentialResolver.java | 4 +-
.../idp/plugin/authn/oidc/rp/impl/MockMatcher.java | 7 +-
.../authn/oidc/rp/impl/MockReloadableService.java | 55 ---
.../oidc/rp/impl/MockSimpleStringTranscoder.java | 2 +-
.../plugin/authn/oidc/rp/impl/OIDCRPFlowTest.java | 46 +-
.../oidc/rp/impl/ProcessEndUserClaimsTest.java | 11 +-
...eOIDCSubjectIdentifierCanonicalizationTest.java | 19 +-
.../oidc/rp/impl/UserInfoEndpointLookupTest.java | 52 +--
.../impl/ValidateOAuthAccessTokenResponseTest.java | 15 +-
.../rp/impl/ValidateOIDCAuthenticationTest.java | 9 +-
.../oidc/rp/impl/ValidateResponseStateTest.java | 11 +-
...nticationContextClassReferencesHandlerTest.java | 9 +-
.../messaging/impl/AddEndpointURIHandlerTest.java | 9 +-
.../AddForceAuthenticationPromptHandlerTest.java | 9 +-
.../impl/AddPassiveAuthenticationHandlerTest.java | 4 +-
.../messaging/impl/AddRedirectURIHandlerTest.java | 9 +-
.../impl/AddRequestedClaimsHandlerTest.java | 9 +-
.../impl/AddResponseTypeAndModeHandlerTest.java | 9 +-
.../rp/messaging/impl/AddScopesHandlerTest.java | 9 +-
.../OIDCProviderMetadataLookupHandlerTest.java | 4 +-
.../flow/AbstractAuthnXmlFlowExecutionTests.java | 75 ++--
.../authn/test/flow/mock/MockFlowBuilder.java | 2 +-
.../test/spring/CustomFlowModelFlowBuilder.java | 6 +-
.../authn/test/spring/MockApplicationContext.java | 482 ---------------------
.../attribute/filter/attribute-filter-system.xml | 2 +-
.../resources/attribute/registry/postconfig.xml | 2 +-
.../resources/conf/additional-system-beans.xml | 2 +-
.../conf/test-relying-party-postconfig.xml | 20 +-
.../resources/conf/test-relying-party-system.xml | 13 +-
.../conf/test-relyingparty-resolver-service.xml | 40 +-
pom.xml | 62 +--
126 files changed, 737 insertions(+), 1387 deletions(-)
diff --git a/idp-oidc-rp-api/pom.xml b/idp-oidc-rp-api/pom.xml
index 15d103e..e770688 100644
--- a/idp-oidc-rp-api/pom.xml
+++ b/idp-oidc-rp-api/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>net.shibboleth.idp.plugin.authn</groupId>
<artifactId>idp-plugin-oidc-rp-parent</artifactId>
- <version>1.1.1-SNAPSHOT</version>
+ <version>2.0.0-SNAPSHOT</version>
</parent>
<artifactId>idp-plugin-oidc-rp-api</artifactId>
@@ -21,11 +21,6 @@
<dependencies>
<!-- Provided dependencies -->
- <dependency>
- <groupId>net.shibboleth.utilities</groupId>
- <artifactId>java-support</artifactId>
- <scope>provided</scope>
- </dependency>
<dependency>
<groupId>net.minidev</groupId>
<artifactId>json-smart</artifactId>
@@ -65,6 +60,11 @@
<groupId>${opensaml.groupId}</groupId>
<artifactId>opensaml-profile-api</artifactId>
<scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>${shib-shared.groupId}</groupId>
+ <artifactId>shib-profile-api</artifactId>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>com.nimbusds</groupId>
@@ -72,8 +72,8 @@
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>javax.servlet-api</artifactId>
+ <groupId>jakarta.servlet</groupId>
+ <artifactId>jakarta.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
diff --git a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/config/navigate/ExtraAudiencesLookupStrategy.java b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/config/navigate/ExtraAudiencesLookupStrategy.java
index 1fa7932..0bff712 100644
--- a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/config/navigate/ExtraAudiencesLookupStrategy.java
+++ b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/config/navigate/ExtraAudiencesLookupStrategy.java
@@ -28,11 +28,11 @@ import org.opensaml.profile.context.ProfileRequestContext;
import com.nimbusds.jwt.JWTClaimsSet;
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
-import net.shibboleth.idp.profile.context.RelyingPartyContext;
import net.shibboleth.oidc.profile.config.OIDCIDTokenProducingProfileConfiguration;
-import net.shibboleth.utilities.java.support.annotation.ParameterName;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.shared.annotation.ParameterName;
+import net.shibboleth.shared.logic.Constraint;
/**
* Locate additional accepted audiences from the ID Token profile config value.
diff --git a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/config/navigate/MaxAgeLookupFunction.java b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/config/navigate/MaxAgeLookupFunction.java
index d17aedc..e03d00b 100644
--- a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/config/navigate/MaxAgeLookupFunction.java
+++ b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/config/navigate/MaxAgeLookupFunction.java
@@ -25,13 +25,13 @@ import javax.annotation.Nullable;
import org.opensaml.profile.context.ProfileRequestContext;
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
-import net.shibboleth.idp.profile.context.RelyingPartyContext;
-import net.shibboleth.idp.profile.context.navigate.AbstractRelyingPartyLookupFunction;
import net.shibboleth.oidc.profile.config.OIDCAuthenticationProfileConfiguration;
import net.shibboleth.oidc.profile.core.OIDCAuthenticationRequest;
-import net.shibboleth.utilities.java.support.annotation.ParameterName;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.profile.context.navigate.AbstractRelyingPartyLookupFunction;
+import net.shibboleth.shared.annotation.ParameterName;
+import net.shibboleth.shared.logic.Constraint;
/**
* Locate the maximum authentication age from the authentication request (first) or profile configuration (second).
diff --git a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/config/navigate/ProviderMetadataStringListValueLookupFunction.java b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/config/navigate/ProviderMetadataStringListValueLookupFunction.java
index 808a5c5..7d2afe0 100644
--- a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/config/navigate/ProviderMetadataStringListValueLookupFunction.java
+++ b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/config/navigate/ProviderMetadataStringListValueLookupFunction.java
@@ -32,8 +32,8 @@ import org.slf4j.LoggerFactory;
import com.nimbusds.openid.connect.sdk.op.OIDCProviderMetadata;
-import net.shibboleth.utilities.java.support.annotation.ParameterName;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.annotation.ParameterName;
+import net.shibboleth.shared.logic.Constraint;
/**
* Fetches the value for the configured key as List of {@link String}s. May be {@code null} if the value is not found
diff --git a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/config/navigate/RedirectUriLookupFunction.java b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/config/navigate/RedirectUriLookupFunction.java
index 429bcb4..74bf760 100644
--- a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/config/navigate/RedirectUriLookupFunction.java
+++ b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/config/navigate/RedirectUriLookupFunction.java
@@ -24,10 +24,10 @@ import javax.annotation.Nullable;
import org.opensaml.profile.context.ProfileRequestContext;
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
-import net.shibboleth.idp.profile.context.RelyingPartyContext;
-import net.shibboleth.idp.profile.context.navigate.AbstractRelyingPartyLookupFunction;
import net.shibboleth.oidc.profile.config.OIDCAuthenticationRelyingPartyProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.profile.context.navigate.AbstractRelyingPartyLookupFunction;
/**
* Pull a redirect_uri from the Relying Party profile config if present. Returns {@literal null} otherwise.
diff --git a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/config/navigate/UserInfoHttpRequestMethodLookupStrategy.java b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/config/navigate/UserInfoHttpRequestMethodLookupStrategy.java
index dd0850f..0cedd0b 100644
--- a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/config/navigate/UserInfoHttpRequestMethodLookupStrategy.java
+++ b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/config/navigate/UserInfoHttpRequestMethodLookupStrategy.java
@@ -21,11 +21,11 @@ import javax.annotation.Nullable;
import org.opensaml.profile.context.ProfileRequestContext;
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
-import net.shibboleth.idp.profile.context.RelyingPartyContext;
-import net.shibboleth.idp.profile.context.navigate.AbstractRelyingPartyLookupFunction;
import net.shibboleth.oidc.profile.config.OIDCAuthenticationRelyingPartyProfileConfiguration;
import net.shibboleth.oidc.profile.oauth2.config.OAuth2AuthorizationProfileConfiguration.HttpRequestMethod;
+import net.shibboleth.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.profile.context.navigate.AbstractRelyingPartyLookupFunction;
/**
* Locate the HTTP request method to use for the UserInfo request. Returns {@link HttpRequestMethod#GET} if not
diff --git a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/EndUserClaimsContext.java b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/EndUserClaimsContext.java
index 7a4d135..ce97a52 100644
--- a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/EndUserClaimsContext.java
+++ b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/EndUserClaimsContext.java
@@ -25,7 +25,7 @@ import org.opensaml.messaging.context.BaseContext;
import com.nimbusds.jwt.JWTClaimsSet;
import com.nimbusds.openid.connect.sdk.claims.ClaimsSet;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.logic.Constraint;
/** A context to hold the final set of claims associated with an authenticated end-user.*/
public class EndUserClaimsContext extends BaseContext {
diff --git a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/OAuth2ClientContext.java b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/OAuth2ClientContext.java
index 5562378..efdc513 100644
--- a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/OAuth2ClientContext.java
+++ b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/OAuth2ClientContext.java
@@ -25,8 +25,8 @@ import javax.annotation.Nullable;
import org.opensaml.messaging.context.BaseContext;
import net.shibboleth.oidc.profile.messaging.context.OIDCPeerEntityContext;
-import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.annotation.constraint.NotEmpty;
+import net.shibboleth.shared.logic.Constraint;
/**
* A context to store information pertaining to the OAuth2 client (Relying Party) to use in communication
diff --git a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/OIDCAuthnContext.java b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/OIDCAuthnContext.java
index 8c28713..e7563ea 100644
--- a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/OIDCAuthnContext.java
+++ b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/OIDCAuthnContext.java
@@ -27,7 +27,7 @@ import org.opensaml.messaging.decoder.MessageDecoder;
import org.opensaml.messaging.handler.MessageHandler;
import org.opensaml.profile.action.ProfileAction;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.logic.Constraint;
/**
* Manages state during proxied OIDC authentication via a Spring Controller.
diff --git a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/OutboundMessageHandlerContext.java b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/OutboundMessageHandlerContext.java
index fbeb67e..5e0820c 100644
--- a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/OutboundMessageHandlerContext.java
+++ b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/OutboundMessageHandlerContext.java
@@ -22,7 +22,7 @@ import javax.annotation.Nullable;
import org.opensaml.messaging.context.BaseContext;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.logic.Constraint;
/**
* A context to stash controller parameters for use by message handlers.
diff --git a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/AbstractTokenResponseLookupStrategy.java b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/AbstractTokenResponseLookupStrategy.java
index 0adfde2..f26d52e 100644
--- a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/AbstractTokenResponseLookupStrategy.java
+++ b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/AbstractTokenResponseLookupStrategy.java
@@ -26,7 +26,7 @@ import org.opensaml.profile.context.ProfileRequestContext;
import org.opensaml.profile.context.navigate.InboundMessageContextLookup;
import net.shibboleth.idp.plugin.authn.oidc.rp.context.AccessTokenResponseContext;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.logic.Constraint;
/** Base class for looking up the token response context.*/
public abstract class AbstractTokenResponseLookupStrategy {
diff --git a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/AbstractUserInfoTokenResponseLookupStrategy.java b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/AbstractUserInfoTokenResponseLookupStrategy.java
index a722c91..337932b 100644
--- a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/AbstractUserInfoTokenResponseLookupStrategy.java
+++ b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/AbstractUserInfoTokenResponseLookupStrategy.java
@@ -26,7 +26,7 @@ import org.opensaml.profile.context.ProfileRequestContext;
import org.opensaml.profile.context.navigate.InboundMessageContextLookup;
import net.shibboleth.idp.plugin.authn.oidc.rp.context.UserInfoResponseContext;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.logic.Constraint;
/** Base class for looking up the UserInfo token response context.*/
public abstract class AbstractUserInfoTokenResponseLookupStrategy {
diff --git a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/AccessTokenLookupStrategy.java b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/AccessTokenLookupStrategy.java
index 856dbe8..82f492a 100644
--- a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/AccessTokenLookupStrategy.java
+++ b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/AccessTokenLookupStrategy.java
@@ -30,7 +30,7 @@ import org.slf4j.LoggerFactory;
import com.nimbusds.oauth2.sdk.token.AccessToken;
import net.shibboleth.idp.plugin.authn.oidc.rp.context.AccessTokenResponseContext;
-import net.shibboleth.utilities.java.support.annotation.ParameterName;
+import net.shibboleth.shared.annotation.ParameterName;
/** Function that extracts the access_token from the {@link AccessTokenResponseContext}.*/
@ThreadSafe
diff --git a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/AuthenticationRequestTimeLookupFunction.java b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/AuthenticationRequestTimeLookupFunction.java
index e300367..65bf593 100644
--- a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/AuthenticationRequestTimeLookupFunction.java
+++ b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/AuthenticationRequestTimeLookupFunction.java
@@ -28,7 +28,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import net.shibboleth.oidc.profile.core.OIDCAuthenticationRequest;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.logic.Constraint;
/**
* Lookup function that returns the time at which the RP sent the authentication request, as taken from the
diff --git a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/ClientIDFromOAuth2ClientContextFunction.java b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/ClientIDFromOAuth2ClientContextFunction.java
index ac50a8e..b026aae 100644
--- a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/ClientIDFromOAuth2ClientContextFunction.java
+++ b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/ClientIDFromOAuth2ClientContextFunction.java
@@ -29,8 +29,8 @@ import org.opensaml.profile.context.ProfileRequestContext;
import com.nimbusds.jwt.JWTClaimsSet;
import net.shibboleth.idp.plugin.authn.oidc.rp.context.OAuth2ClientContext;
-import net.shibboleth.utilities.java.support.annotation.ParameterName;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.annotation.ParameterName;
+import net.shibboleth.shared.logic.Constraint;
/**
* A function that pulls the client_id out of the {@link OAuth2ClientContext}.
diff --git a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/DefaultEndUserClaimsLookupStrategy.java b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/DefaultEndUserClaimsLookupStrategy.java
index c23dbb8..984b136 100644
--- a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/DefaultEndUserClaimsLookupStrategy.java
+++ b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/DefaultEndUserClaimsLookupStrategy.java
@@ -30,8 +30,8 @@ import org.opensaml.profile.context.navigate.InboundMessageContextLookup;
import com.nimbusds.openid.connect.sdk.claims.ClaimsSet;
import net.shibboleth.idp.plugin.authn.oidc.rp.context.EndUserClaimsContext;
-import net.shibboleth.utilities.java.support.annotation.ParameterName;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.annotation.ParameterName;
+import net.shibboleth.shared.logic.Constraint;
/** Function that extracts the end-user's claims from the {@link EndUserClaimsContext}.*/
@ThreadSafe
diff --git a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/DefaultIDTokenLookupStrategy.java b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/DefaultIDTokenLookupStrategy.java
index 625dfba..55c70b2 100644
--- a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/DefaultIDTokenLookupStrategy.java
+++ b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/DefaultIDTokenLookupStrategy.java
@@ -28,7 +28,7 @@ import org.opensaml.profile.context.ProfileRequestContext;
import com.nimbusds.jwt.JWT;
import net.shibboleth.idp.plugin.authn.oidc.rp.context.AccessTokenResponseContext;
-import net.shibboleth.utilities.java.support.annotation.ParameterName;
+import net.shibboleth.shared.annotation.ParameterName;
/** Function that extracts the id_token from the {@link AccessTokenResponseContext}.*/
@ThreadSafe
diff --git a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/DefaultUserInfoJWTLookupStrategy.java b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/DefaultUserInfoJWTLookupStrategy.java
index e5e0919..9e1f12f 100644
--- a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/DefaultUserInfoJWTLookupStrategy.java
+++ b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/DefaultUserInfoJWTLookupStrategy.java
@@ -31,7 +31,7 @@ import com.nimbusds.common.contenttype.ContentType;
import com.nimbusds.jwt.JWT;
import net.shibboleth.idp.plugin.authn.oidc.rp.context.UserInfoResponseContext;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.logic.Constraint;
/**
* Function that extracts the UserInfo claims as a JWT from the {@link UserInfoResponseContext}. If not found, returns
diff --git a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/EncryptedIDTokenLookupStrategy.java b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/EncryptedIDTokenLookupStrategy.java
index cfa3793..deb8632 100644
--- a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/EncryptedIDTokenLookupStrategy.java
+++ b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/EncryptedIDTokenLookupStrategy.java
@@ -32,7 +32,7 @@ import com.nimbusds.jwt.JWT;
import com.nimbusds.jwt.SignedJWT;
import net.shibboleth.idp.plugin.authn.oidc.rp.context.AccessTokenResponseContext;
-import net.shibboleth.utilities.java.support.annotation.ParameterName;
+import net.shibboleth.shared.annotation.ParameterName;
/**
* Function that extracts the id_token from the {@link AccessTokenResponseContext} iff it is an {@link EncryptedJWT}
diff --git a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/EncryptedUserInfoJWTLookupStrategy.java b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/EncryptedUserInfoJWTLookupStrategy.java
index 4f38650..973ee8c 100644
--- a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/EncryptedUserInfoJWTLookupStrategy.java
+++ b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/EncryptedUserInfoJWTLookupStrategy.java
@@ -33,7 +33,7 @@ import com.nimbusds.jwt.SignedJWT;
import net.shibboleth.idp.plugin.authn.oidc.rp.context.AccessTokenResponseContext;
import net.shibboleth.idp.plugin.authn.oidc.rp.context.UserInfoResponseContext;
-import net.shibboleth.utilities.java.support.annotation.ParameterName;
+import net.shibboleth.shared.annotation.ParameterName;
/**
* Function that extracts the UserInfo JWT from the {@link UserInfoResponseContext} iff it is an {@link EncryptedJWT}
diff --git a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/IDTokenInAccessTokenUpdateStrategy.java b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/IDTokenInAccessTokenUpdateStrategy.java
index 5c79f27..4d4020b 100644
--- a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/IDTokenInAccessTokenUpdateStrategy.java
+++ b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/IDTokenInAccessTokenUpdateStrategy.java
@@ -34,8 +34,8 @@ import com.nimbusds.openid.connect.sdk.OIDCTokenResponse;
import net.minidev.json.JSONObject;
import net.shibboleth.idp.plugin.authn.oidc.rp.context.AccessTokenResponseContext;
-import net.shibboleth.utilities.java.support.annotation.ParameterName;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.annotation.ParameterName;
+import net.shibboleth.shared.logic.Constraint;
/** Consumer to update the id_token in the {@link AccessTokenResponseContext}.*/
public class IDTokenInAccessTokenUpdateStrategy implements BiConsumer<ProfileRequestContext, JWT> {
diff --git a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/IDTokenJOSEHeaderLookupStrategy.java b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/IDTokenJOSEHeaderLookupStrategy.java
index a38ea34..8842e16 100644
--- a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/IDTokenJOSEHeaderLookupStrategy.java
+++ b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/IDTokenJOSEHeaderLookupStrategy.java
@@ -29,7 +29,7 @@ import com.nimbusds.jose.Header;
import com.nimbusds.jose.JWSHeader;
import net.shibboleth.idp.plugin.authn.oidc.rp.context.AccessTokenResponseContext;
-import net.shibboleth.utilities.java.support.annotation.ParameterName;
+import net.shibboleth.shared.annotation.ParameterName;
/** Function that extracts the JWS JOSE header from the id_token inside the {@link AccessTokenResponseContext}.*/
@ThreadSafe
diff --git a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/RequestObjectTokenUpdateStrategy.java b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/RequestObjectTokenUpdateStrategy.java
index a2cc682..cf5e786 100644
--- a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/RequestObjectTokenUpdateStrategy.java
+++ b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/RequestObjectTokenUpdateStrategy.java
@@ -29,7 +29,7 @@ import org.slf4j.LoggerFactory;
import com.nimbusds.jwt.JWT;
import net.shibboleth.oidc.profile.core.OIDCAuthenticationRequest;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.logic.Constraint;
/** Consumer that adds the {@link JWT} back to the Request Object in the {@link OIDCAuthenticationRequest}.*/
public class RequestObjectTokenUpdateStrategy implements BiConsumer<JWT, MessageContext> {
diff --git a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/SubFromIDTokenLookupFunction.java b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/SubFromIDTokenLookupFunction.java
index 5c3dafd..e5f12dd 100644
--- a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/SubFromIDTokenLookupFunction.java
+++ b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/SubFromIDTokenLookupFunction.java
@@ -32,7 +32,7 @@ import org.slf4j.LoggerFactory;
import com.nimbusds.jwt.JWTClaimsSet;
import net.shibboleth.idp.plugin.authn.oidc.rp.context.AccessTokenResponseContext;
-import net.shibboleth.utilities.java.support.annotation.ParameterName;
+import net.shibboleth.shared.annotation.ParameterName;
/**
* A function that pulls the subject 'sub' out of the id_token in the {@link AccessTokenResponseContext}.
diff --git a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/UserInfoInUserInfoResponseContextUpdateStrategy.java b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/UserInfoInUserInfoResponseContextUpdateStrategy.java
index bd3a355..10804bc 100644
--- a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/UserInfoInUserInfoResponseContextUpdateStrategy.java
+++ b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/UserInfoInUserInfoResponseContextUpdateStrategy.java
@@ -32,7 +32,7 @@ import com.nimbusds.openid.connect.sdk.UserInfoSuccessResponse;
import net.shibboleth.idp.plugin.authn.oidc.rp.context.AccessTokenResponseContext;
import net.shibboleth.idp.plugin.authn.oidc.rp.context.UserInfoResponseContext;
-import net.shibboleth.utilities.java.support.annotation.ParameterName;
+import net.shibboleth.shared.annotation.ParameterName;
/**
* Consumer strategy to update the UserInfo JWT in the {@link UserInfoResponseContext}.
diff --git a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/context/logic/AbstractUserInfoResponseTypeCondition.java b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/context/logic/AbstractUserInfoResponseTypeCondition.java
index 7fa0623..130831d 100644
--- a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/context/logic/AbstractUserInfoResponseTypeCondition.java
+++ b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/context/logic/AbstractUserInfoResponseTypeCondition.java
@@ -28,7 +28,7 @@ import org.opensaml.profile.context.ProfileRequestContext;
import org.opensaml.profile.context.navigate.InboundMessageContextLookup;
import net.shibboleth.idp.plugin.authn.oidc.rp.context.UserInfoResponseContext;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.logic.Constraint;
/**
* Abstract predicate for pulling out the {@link UserInfoResponseContext}. If either the
diff --git a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/context/logic/JWTBearerTokenForClientAuthenticationPredicate.java b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/context/logic/JWTBearerTokenForClientAuthenticationPredicate.java
index cc294b5..c415d9b 100644
--- a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/context/logic/JWTBearerTokenForClientAuthenticationPredicate.java
+++ b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/context/logic/JWTBearerTokenForClientAuthenticationPredicate.java
@@ -28,10 +28,10 @@ import org.slf4j.LoggerFactory;
import com.nimbusds.oauth2.sdk.auth.ClientAuthenticationMethod;
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
-import net.shibboleth.idp.profile.context.RelyingPartyContext;
-import net.shibboleth.idp.profile.logic.messaging.AbstractRelyingPartyPredicate;
import net.shibboleth.oidc.profile.config.OIDCAuthenticationRelyingPartyProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.profile.context.logic.messaging.AbstractRelyingPartyPredicate;
/**
* A predicate that determines if the client authentication method chosen is a JWT type.
diff --git a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/context/logic/RequestObjectRequiredAndSupported.java b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/context/logic/RequestObjectRequiredAndSupported.java
index 51af12c..eccfee3 100644
--- a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/context/logic/RequestObjectRequiredAndSupported.java
+++ b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/context/logic/RequestObjectRequiredAndSupported.java
@@ -29,12 +29,12 @@ import org.slf4j.LoggerFactory;
import com.nimbusds.openid.connect.sdk.op.OIDCProviderMetadata;
-import net.shibboleth.idp.profile.context.RelyingPartyContext;
-import net.shibboleth.idp.profile.logic.AbstractRelyingPartyPredicate;
import net.shibboleth.oidc.metadata.context.OIDCProviderMetadataContext;
import net.shibboleth.oidc.profile.config.OIDCAuthenticationRelyingPartyProfileConfiguration;
import net.shibboleth.oidc.profile.messaging.context.OIDCPeerEntityContext;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.profile.context.logic.AbstractRelyingPartyPredicate;
+import net.shibboleth.shared.logic.Constraint;
/**
* A predicate that tests whether a request object should be built based on what is configured in the profile
diff --git a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/context/logic/RequiresSignatureVerificationPredicate.java b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/context/logic/RequiresSignatureVerificationPredicate.java
index 5648436..aba8dea 100644
--- a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/context/logic/RequiresSignatureVerificationPredicate.java
+++ b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/context/logic/RequiresSignatureVerificationPredicate.java
@@ -28,11 +28,11 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import net.shibboleth.idp.plugin.authn.oidc.rp.context.AbstractAuthenticatableOIDCContext;
-import net.shibboleth.idp.profile.context.RelyingPartyContext;
-import net.shibboleth.idp.profile.logic.messaging.AbstractRelyingPartyPredicate;
import net.shibboleth.oidc.profile.config.OIDCAuthenticationRelyingPartyProfileConfiguration;
-import net.shibboleth.utilities.java.support.annotation.ParameterName;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.profile.context.logic.messaging.AbstractRelyingPartyPredicate;
+import net.shibboleth.shared.annotation.ParameterName;
+import net.shibboleth.shared.logic.Constraint;
/**
* Is successful TLS credential verification enough to validate the JWT in question or should JWT signature validation
diff --git a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/context/logic/UserInfoLookupCondition.java b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/context/logic/UserInfoLookupCondition.java
index 7cb71cc..abd9c64 100644
--- a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/context/logic/UserInfoLookupCondition.java
+++ b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/context/logic/UserInfoLookupCondition.java
@@ -23,8 +23,8 @@ import javax.annotation.Nullable;
import org.opensaml.profile.context.ProfileRequestContext;
-import net.shibboleth.idp.profile.context.RelyingPartyContext;
import net.shibboleth.oidc.profile.config.OIDCAuthenticationRelyingPartyProfileConfiguration;
+import net.shibboleth.profile.context.RelyingPartyContext;
/**
* Checks whether the UserInfo endpoint should be accessed to retrieve claims about the
diff --git a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/context/navigate/JWTClaimsSetFromRequestObjectLookupFunction.java b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/context/navigate/JWTClaimsSetFromRequestObjectLookupFunction.java
index 19530e6..09f829b 100644
--- a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/context/navigate/JWTClaimsSetFromRequestObjectLookupFunction.java
+++ b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/context/navigate/JWTClaimsSetFromRequestObjectLookupFunction.java
@@ -31,7 +31,7 @@ import com.nimbusds.jose.Payload;
import com.nimbusds.jwt.JWTClaimsSet;
import net.shibboleth.oidc.profile.core.OIDCAuthenticationRequest;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.logic.Constraint;
/**
* Extract the {@link Payload} from the Request Object inside the {@link OIDCAuthenticationRequest}.
diff --git a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/context/navigate/PayloadFromRequestObjectLookupFunction.java b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/context/navigate/PayloadFromRequestObjectLookupFunction.java
index 9d06189..c57abd4 100644
--- a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/context/navigate/PayloadFromRequestObjectLookupFunction.java
+++ b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/context/navigate/PayloadFromRequestObjectLookupFunction.java
@@ -33,7 +33,7 @@ import com.nimbusds.jwt.PlainJWT;
import com.nimbusds.jwt.SignedJWT;
import net.shibboleth.oidc.profile.core.OIDCAuthenticationRequest;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.logic.Constraint;
/**
* Extract the {@link Payload} from the Request Object inside the {@link OIDCAuthenticationRequest}.
diff --git a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/principal/OAuth2AccessTokenPrincipal.java b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/principal/OAuth2AccessTokenPrincipal.java
index f59032f..2323582 100644
--- a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/principal/OAuth2AccessTokenPrincipal.java
+++ b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/principal/OAuth2AccessTokenPrincipal.java
@@ -25,9 +25,9 @@ import javax.annotation.Nullable;
import com.google.common.base.MoreObjects;
import net.shibboleth.idp.authn.principal.CloneablePrincipal;
-import net.shibboleth.utilities.java.support.annotation.ParameterName;
-import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.annotation.ParameterName;
+import net.shibboleth.shared.annotation.constraint.NotEmpty;
+import net.shibboleth.shared.logic.Constraint;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
/** Principal based on an OAuth 2.0 access token.*/
diff --git a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/principal/OAuth2RefreshTokenPrincipal.java b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/principal/OAuth2RefreshTokenPrincipal.java
index 3a99d5b..af15ed3 100644
--- a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/principal/OAuth2RefreshTokenPrincipal.java
+++ b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/principal/OAuth2RefreshTokenPrincipal.java
@@ -22,9 +22,9 @@ import javax.annotation.Nonnull;
import com.google.common.base.MoreObjects;
import net.shibboleth.idp.authn.principal.CloneablePrincipal;
-import net.shibboleth.utilities.java.support.annotation.ParameterName;
-import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.annotation.ParameterName;
+import net.shibboleth.shared.annotation.constraint.NotEmpty;
+import net.shibboleth.shared.logic.Constraint;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
/** Principal based on an OAuth 2.0 refresh token.*/
diff --git a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/principal/OIDCSubjectIdentifierPrincipal.java b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/principal/OIDCSubjectIdentifierPrincipal.java
index a386341..7fc00ea 100644
--- a/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/principal/OIDCSubjectIdentifierPrincipal.java
+++ b/idp-oidc-rp-api/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/principal/OIDCSubjectIdentifierPrincipal.java
@@ -22,10 +22,11 @@ import javax.annotation.Nonnull;
import com.google.common.base.MoreObjects;
import net.shibboleth.idp.authn.principal.CloneablePrincipal;
-import net.shibboleth.utilities.java.support.annotation.ParameterName;
-import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
-import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
+import net.shibboleth.shared.annotation.ParameterName;
+import net.shibboleth.shared.annotation.constraint.NotEmpty;
+import net.shibboleth.shared.logic.Constraint;
+import net.shibboleth.shared.primitive.StringSupport;
+
/** Principal based on an OIDC 'sub' (subject) identifier.*/
public class OIDCSubjectIdentifierPrincipal implements CloneablePrincipal {
diff --git a/idp-oidc-rp-api/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/DefaultIssuerIDLookupFunction.java b/idp-oidc-rp-api/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/DefaultIssuerIDLookupFunction.java
deleted file mode 100644
index 7f9928a..0000000
--- a/idp-oidc-rp-api/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/context/navigate/DefaultIssuerIDLookupFunction.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements. See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You 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.idp.plugin.authn.oidc.rp.context.navigate;
-
-import javax.annotation.Nullable;
-import javax.annotation.concurrent.ThreadSafe;
-
-import org.opensaml.messaging.context.MessageContext;
-import org.opensaml.messaging.context.navigate.ContextDataLookupFunction;
-
-import net.shibboleth.oidc.profile.messaging.context.OIDCPeerEntityContext;
-
-/**
- * Strategy to pull out the ID of the OIDC proxy issuer/provider from the {@link OIDCPeerEntityContext}.
- */
- at ThreadSafe
-public class DefaultIssuerIDLookupFunction implements ContextDataLookupFunction<MessageContext, String> {
-
- /** {@inheritDoc} */
- @Override
- @Nullable public String apply(@Nullable final MessageContext input) {
- if (input == null) {
- return null;
- }
-
- final OIDCPeerEntityContext context = input.getSubcontext(OIDCPeerEntityContext.class);
- if (context == null) {
- return null;
- }
- return context.getIdentifier();
- }
-}
diff --git a/idp-oidc-rp-api/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/context/logic/RequestObjectRequiredAndSupportedTest.java b/idp-oidc-rp-api/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/context/logic/RequestObjectRequiredAndSupportedTest.java
index 391bdf0..c7adab9 100644
--- a/idp-oidc-rp-api/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/context/logic/RequestObjectRequiredAndSupportedTest.java
+++ b/idp-oidc-rp-api/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/context/logic/RequestObjectRequiredAndSupportedTest.java
@@ -33,9 +33,9 @@ import com.nimbusds.oauth2.sdk.id.Issuer;
import com.nimbusds.openid.connect.sdk.SubjectType;
import com.nimbusds.openid.connect.sdk.op.OIDCProviderMetadata;
-import net.shibboleth.idp.profile.context.RelyingPartyContext;
import net.shibboleth.oidc.metadata.context.OIDCProviderMetadataContext;
import net.shibboleth.oidc.profile.config.impl.DefaultOIDCAuthorizationConfiguration;
+import net.shibboleth.profile.context.RelyingPartyContext;
/** Tests for the {@link RequestObjectRequiredAndSupported}.*/
public class RequestObjectRequiredAndSupportedTest {
diff --git a/idp-oidc-rp-api/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/context/logic/RequiresSignatureVerificationPredicateTest.java b/idp-oidc-rp-api/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/context/logic/RequiresSignatureVerificationPredicateTest.java
index 342d6c5..52bbd6e 100644
--- a/idp-oidc-rp-api/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/context/logic/RequiresSignatureVerificationPredicateTest.java
+++ b/idp-oidc-rp-api/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/context/logic/RequiresSignatureVerificationPredicateTest.java
@@ -26,8 +26,8 @@ import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import net.shibboleth.idp.plugin.authn.oidc.rp.context.AbstractAuthenticatableOIDCContext;
-import net.shibboleth.idp.profile.context.RelyingPartyContext;
import net.shibboleth.oidc.profile.config.impl.DefaultOIDCAuthorizationConfiguration;
+import net.shibboleth.profile.context.RelyingPartyContext;
/** Tests for the {@link RequiresSignatureVerificationPredicate}.*/
public class RequiresSignatureVerificationPredicateTest {
diff --git a/idp-oidc-rp-dist/pom.xml b/idp-oidc-rp-dist/pom.xml
index 8e3c24b..ccb836a 100644
--- a/idp-oidc-rp-dist/pom.xml
+++ b/idp-oidc-rp-dist/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>net.shibboleth.idp.plugin.authn</groupId>
<artifactId>idp-plugin-oidc-rp-parent</artifactId>
- <version>1.1.1-SNAPSHOT</version>
+ <version>2.0.0-SNAPSHOT</version>
</parent>
<artifactId>idp-plugin-oidc-rp-dist</artifactId>
diff --git a/idp-oidc-rp-impl/pom.xml b/idp-oidc-rp-impl/pom.xml
index eb63d0d..efaed6d 100644
--- a/idp-oidc-rp-impl/pom.xml
+++ b/idp-oidc-rp-impl/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>net.shibboleth.idp.plugin.authn</groupId>
<artifactId>idp-plugin-oidc-rp-parent</artifactId>
- <version>1.1.1-SNAPSHOT</version>
+ <version>2.0.0-SNAPSHOT</version>
</parent>
<artifactId>idp-plugin-oidc-rp-impl</artifactId>
@@ -30,11 +30,6 @@
<artifactId>idp-plugin-oidc-config-impl</artifactId>
<scope>provided</scope>
</dependency>
- <dependency>
- <groupId>${idp.groupId}</groupId>
- <artifactId>idp-attribute-api</artifactId>
- <scope>provided</scope>
- </dependency>
<dependency>
<groupId>${opensaml.groupId}</groupId>
<artifactId>opensaml-xmlsec-impl</artifactId>
@@ -75,17 +70,6 @@
<artifactId>jsr305</artifactId>
<scope>provided</scope>
</dependency>
- <dependency>
- <groupId>net.shibboleth.utilities</groupId>
- <artifactId>java-support</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.httpcomponents</groupId>
- <artifactId>httpcore</artifactId>
- <scope>provided</scope>
- </dependency>
-
<dependency>
<groupId>${idp.oidc.groupId}</groupId>
<artifactId>oidc-common-crypto-impl</artifactId>
@@ -167,8 +151,8 @@
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>${idp.groupId}</groupId>
- <artifactId>idp-attribute-filter-api</artifactId>
+ <groupId>${shib-shared.groupId}</groupId>
+ <artifactId>shib-attribute-filter-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
@@ -176,16 +160,6 @@
<artifactId>oidc-common-profile-impl</artifactId>
<scope>provided</scope>
</dependency>
- <dependency>
- <groupId>${opensaml.groupId}</groupId>
- <artifactId>opensaml-core</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.httpcomponents</groupId>
- <artifactId>httpclient</artifactId>
- <scope>provided</scope>
- </dependency>
<dependency>
<groupId>net.minidev</groupId>
<artifactId>json-smart</artifactId>
@@ -207,8 +181,8 @@
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>javax.servlet-api</artifactId>
+ <groupId>jakarta.servlet</groupId>
+ <artifactId>jakarta.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
@@ -265,11 +239,6 @@
<groupId>${spring.groupId}</groupId>
<artifactId>spring-beans</artifactId>
<scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>net.shibboleth.ext</groupId>
- <artifactId>spring-extensions</artifactId>
- <scope>provided</scope>
</dependency>
<dependency>
<groupId>${spring-webflow.groupId}</groupId>
@@ -277,19 +246,25 @@
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>${idp.groupId}</groupId>
- <artifactId>idp-attribute-impl</artifactId>
- <version>${idp.version}</version>
+ <groupId>${shib-shared.groupId}</groupId>
+ <artifactId>shib-profile-api</artifactId>
<scope>provided</scope>
</dependency>
- <dependency>
- <groupId>${idp.groupId}</groupId>
- <artifactId>idp-attribute-filter-impl</artifactId>
- <version>${idp.version}</version>
+ <dependency>
+ <groupId>${shib-shared.groupId}</groupId>
+ <artifactId>shib-profile-impl</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>${shib-shared.groupId}</groupId>
+ <artifactId>shib-spring</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>${shib-shared.groupId}</groupId>
+ <artifactId>shib-service</artifactId>
<scope>provided</scope>
</dependency>
-
-
<!-- Test dependency -->
<dependency>
<groupId>${spring.groupId}</groupId>
@@ -298,23 +273,23 @@
</dependency>
<dependency>
<groupId>${idp.groupId}</groupId>
- <artifactId>idp-conf</artifactId>
+ <artifactId>idp-testing</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>${idp.groupId}</groupId>
- <artifactId>idp-attribute-filter-spring</artifactId>
+ <artifactId>idp-conf-impl</artifactId>
<scope>test</scope>
</dependency>
<dependency>
- <groupId>${idp.oidc.groupId}</groupId>
- <artifactId>oidc-common-crypto-impl</artifactId>
- <type>test-jar</type>
+ <groupId>${shib-shared.groupId}</groupId>
+ <artifactId>shib-attribute-filter-spring</artifactId>
<scope>test</scope>
</dependency>
<dependency>
- <groupId>${idp.groupId}</groupId>
- <artifactId>idp-conf-impl</artifactId>
+ <groupId>${idp.oidc.groupId}</groupId>
+ <artifactId>oidc-common-crypto-impl</artifactId>
+ <type>test-jar</type>
<scope>test</scope>
</dependency>
<dependency>
@@ -323,8 +298,8 @@
<scope>test</scope>
</dependency>
<dependency>
- <groupId>${idp.groupId}</groupId>
- <artifactId>idp-profile-spring</artifactId>
+ <groupId>${shib-shared.groupId}</groupId>
+ <artifactId>shib-profile-testing</artifactId>
<scope>test</scope>
</dependency>
<dependency>
@@ -339,11 +314,16 @@
<scope>test</scope>
<type>test-jar</type>
</dependency>
+ <dependency>
+ <groupId>${shib-shared.groupId}</groupId>
+ <artifactId>shib-testing</artifactId>
+ <scope>test</scope>
+ </dependency>
<!-- Spring webflow tests require Junit4, runs in TestNG bridge -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
- <version>4.12</version>
+ <version>4.13.2</version>
<scope>test</scope>
</dependency>
<dependency>
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/OIDCRPModule.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/OIDCRPModule.java
index b8c75dc..eaf7fe4 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/OIDCRPModule.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/OIDCRPModule.java
@@ -20,7 +20,7 @@ package net.shibboleth.idp.plugin.authn.oidc.rp;
import java.io.IOException;
import net.shibboleth.idp.module.IdPModule;
-import net.shibboleth.idp.module.ModuleException;
+import net.shibboleth.profile.module.ModuleException;
import net.shibboleth.idp.module.impl.PluginIdPModule;
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/OIDCRPPlugin.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/OIDCRPPlugin.java
index a5dd33f..9209dfb 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/OIDCRPPlugin.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/OIDCRPPlugin.java
@@ -21,9 +21,9 @@ import java.io.IOException;
import java.util.Collections;
import net.shibboleth.idp.module.IdPModule;
-import net.shibboleth.idp.module.ModuleException;
-import net.shibboleth.idp.plugin.PluginException;
import net.shibboleth.idp.plugin.impl.FirstPartyIdPPlugin;
+import net.shibboleth.profile.module.ModuleException;
+import net.shibboleth.profile.plugin.PluginException;
/**
* Plugin description about the OIDC-RP plugin.
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/audit/impl/FixedStringAuditExtractor.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/audit/impl/FixedStringAuditExtractor.java
index 4c75062..0b38d45 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/audit/impl/FixedStringAuditExtractor.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/audit/impl/FixedStringAuditExtractor.java
@@ -23,9 +23,9 @@ import javax.annotation.Nonnull;
import org.opensaml.profile.context.ProfileRequestContext;
-import net.shibboleth.utilities.java.support.annotation.ParameterName;
-import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.annotation.ParameterName;
+import net.shibboleth.shared.annotation.constraint.NotEmpty;
+import net.shibboleth.shared.logic.Constraint;
/** A simple audit extractor that allows a fixed string to be logged.*/
public class FixedStringAuditExtractor implements Function<ProfileRequestContext, String> {
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/decoding/impl/AbstractJSONResponseDecoderFunction.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/decoding/impl/AbstractJSONResponseDecoderFunction.java
index 2d48fe7..2dc0dfb 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/decoding/impl/AbstractJSONResponseDecoderFunction.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/decoding/impl/AbstractJSONResponseDecoderFunction.java
@@ -21,15 +21,15 @@ import java.util.function.Function;
import javax.annotation.Nonnull;
-import org.apache.http.HttpResponse;
+import org.apache.hc.core5.http.ClassicHttpResponse;
import com.fasterxml.jackson.databind.ObjectMapper;
-import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
-import net.shibboleth.utilities.java.support.component.AbstractInitializableComponent;
-import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.annotation.constraint.NonnullAfterInit;
+import net.shibboleth.shared.component.AbstractInitializableComponent;
+import net.shibboleth.shared.component.ComponentInitializationException;
+import net.shibboleth.shared.component.ComponentSupport;
+import net.shibboleth.shared.logic.Constraint;
/**
* Abstract class for JSON based response decoders.
@@ -37,7 +37,7 @@ import net.shibboleth.utilities.java.support.logic.Constraint;
* @param <T> the return type of the function.
*/
public abstract class AbstractJSONResponseDecoderFunction<T> extends AbstractInitializableComponent
- implements Function<HttpResponse, T> {
+ implements Function<ClassicHttpResponse, T> {
/** JSON object mapper. */
@NonnullAfterInit private ObjectMapper objectMapper;
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/decoding/impl/DefaultAccessTokenResponseDecoder.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/decoding/impl/DefaultAccessTokenResponseDecoder.java
index 565f6a2..5ea53fc 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/decoding/impl/DefaultAccessTokenResponseDecoder.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/decoding/impl/DefaultAccessTokenResponseDecoder.java
@@ -24,9 +24,9 @@ import java.util.Map;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
-import org.apache.http.HttpResponse;
-import org.apache.http.HttpStatus;
-import org.apache.http.entity.ContentType;
+import org.apache.hc.core5.http.ClassicHttpResponse;
+import org.apache.hc.core5.http.ContentType;
+import org.apache.hc.core5.http.HttpStatus;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.MediaType;
@@ -49,16 +49,16 @@ public class DefaultAccessTokenResponseDecoder extends AbstractJSONResponseDecod
@Nonnull private final Logger log = LoggerFactory.getLogger(DefaultAccessTokenResponseDecoder.class);
@Override
- @Nullable public TokenResponse apply(@Nonnull final HttpResponse httpResponse) {
+ @Nullable public TokenResponse apply(@Nonnull final ClassicHttpResponse httpResponse) {
try {
- if (httpResponse.getStatusLine() == null) {
- log.warn("HTTP Response did not contain a status line");
+ if (httpResponse.getEntity() == null) {
+ log.warn("HTTP Response did not contain an entity");
return null;
}
- final ContentType contentType = ContentType.get(httpResponse.getEntity());
+ final ContentType contentType = ContentType.parse(httpResponse.getEntity().getContentType());
if (contentType == null || contentType.getMimeType() == null) {
log.warn("HTTP response did not contain a content-type, must contain a content-type");
return null;
@@ -75,7 +75,7 @@ public class DefaultAccessTokenResponseDecoder extends AbstractJSONResponseDecod
if (log.isTraceEnabled()) {
log.trace("Token Response: {}", tokenResponseAsMap);
}
- final int httpStatusCode = httpResponse.getStatusLine().getStatusCode();
+ final int httpStatusCode = httpResponse.getCode();
if (httpStatusCode != HttpStatus.SC_OK) {
return TokenErrorResponse.parse(new JSONObject(tokenResponseAsMap));
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/decoding/impl/DefaultUserInfoResponseDecoder.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/decoding/impl/DefaultUserInfoResponseDecoder.java
index a66cdb5..a19c3a5 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/decoding/impl/DefaultUserInfoResponseDecoder.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/decoding/impl/DefaultUserInfoResponseDecoder.java
@@ -22,9 +22,9 @@ import java.util.Map;
import javax.annotation.Nonnull;
-import org.apache.http.Header;
-import org.apache.http.HttpResponse;
-import org.apache.http.HttpStatus;
+import org.apache.hc.core5.http.Header;
+import org.apache.hc.core5.http.ClassicHttpResponse;
+import org.apache.hc.core5.http.HttpStatus;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -58,20 +58,15 @@ public class DefaultUserInfoResponseDecoder extends AbstractJSONResponseDecoderF
// Checkstyle: CyclomaticComplexity|ReturnCount|MethodLength OFF
@Override
- public UserInfoResponse apply(@Nonnull final HttpResponse httpResponse) {
-
- if (httpResponse.getStatusLine() == null) {
- log.warn("HTTP Response did not contain a status line");
- return null;
- }
+ public UserInfoResponse apply(@Nonnull final ClassicHttpResponse httpResponse) {
+
try {
- final int httpStatusCode = httpResponse.getStatusLine().getStatusCode();
+ final int httpStatusCode = httpResponse.getCode();
if (httpStatusCode != HttpStatus.SC_OK) {
- if (httpResponse.getHeaders(USERINFO_ERROR_RESPONSE_HEADER) != null &&
- httpResponse.getHeaders(USERINFO_ERROR_RESPONSE_HEADER).length == 1) {
-
- final Header errorHeader = httpResponse.getHeaders(USERINFO_ERROR_RESPONSE_HEADER)[0];
+ if (httpResponse.getHeader(USERINFO_ERROR_RESPONSE_HEADER) != null) {
+
+ final Header errorHeader = httpResponse.getHeader(USERINFO_ERROR_RESPONSE_HEADER);
if (errorHeader == null) {
log.warn("HTTP status code implies error response, but no error given");
@@ -97,7 +92,7 @@ public class DefaultUserInfoResponseDecoder extends AbstractJSONResponseDecoderF
return null;
}
- final ContentType contentType = ContentType.parse(httpResponse.getEntity().getContentType().getValue());
+ final ContentType contentType = ContentType.parse(httpResponse.getEntity().getContentType());
if (contentType == null) {
log.warn("HTTP response did not contain a valid content-type");
return null;
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/encoding/impl/AbstractRequestEncoderFunction.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/encoding/impl/AbstractRequestEncoderFunction.java
index d365d84..ecff570 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/encoding/impl/AbstractRequestEncoderFunction.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/encoding/impl/AbstractRequestEncoderFunction.java
@@ -22,7 +22,7 @@ import java.util.function.Function;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
-import org.apache.http.client.methods.HttpUriRequest;
+import org.apache.hc.core5.http.ClassicHttpRequest;
import org.opensaml.messaging.context.MessageContext;
import org.opensaml.messaging.context.navigate.ChildContextLookup;
import org.opensaml.profile.context.ProfileRequestContext;
@@ -36,13 +36,13 @@ import net.shibboleth.oidc.authn.context.OAuth2ClientAuthenticationContext;
import net.shibboleth.oidc.metadata.context.OIDCProviderMetadataContext;
import net.shibboleth.oidc.profile.core.OIDCAuthenticationRequest;
import net.shibboleth.oidc.profile.messaging.context.OIDCPeerEntityContext;
-import net.shibboleth.utilities.java.support.component.AbstractInitializableComponent;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.component.AbstractInitializableComponent;
+import net.shibboleth.shared.component.ComponentSupport;
+import net.shibboleth.shared.logic.Constraint;
/** Abstract request encoder function that pulls out various contexts and request/response messages.*/
public abstract class AbstractRequestEncoderFunction extends AbstractInitializableComponent
- implements Function<ProfileRequestContext, HttpUriRequest> {
+ implements Function<ProfileRequestContext, ClassicHttpRequest> {
/** Class logger. */
@Nonnull private final Logger log = LoggerFactory.getLogger(AbstractRequestEncoderFunction.class);
@@ -152,7 +152,7 @@ public abstract class AbstractRequestEncoderFunction extends AbstractInitializab
* failure.</p>
*/
@Override
- @Nullable public HttpUriRequest apply(@Nonnull final ProfileRequestContext profileRequestContext) {
+ @Nullable public ClassicHttpRequest apply(@Nonnull final ProfileRequestContext profileRequestContext) {
final MessageContext inboundMessageCtx = profileRequestContext.getInboundMessageContext();
@@ -199,13 +199,13 @@ public abstract class AbstractRequestEncoderFunction extends AbstractInitializab
}
/**
- * Encode a HttpUriRequest from the given context. Implementations should override this method.
+ * Encode a ClassicHttpRequest from the given context. Implementations should override this method.
*
* @param profileRequestContext the profile request context.
*
* @return the request to execute.
*/
- @Nullable protected abstract HttpUriRequest doApply(@Nonnull ProfileRequestContext profileRequestContext);
+ @Nullable protected abstract ClassicHttpRequest doApply(@Nonnull ProfileRequestContext profileRequestContext);
}
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/encoding/impl/DefaultAuthCodeTokenRequestEncoder.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/encoding/impl/DefaultAuthCodeTokenRequestEncoder.java
index 2d04aec..2b3e2a7 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/encoding/impl/DefaultAuthCodeTokenRequestEncoder.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/encoding/impl/DefaultAuthCodeTokenRequestEncoder.java
@@ -20,8 +20,9 @@ package net.shibboleth.idp.plugin.authn.oidc.rp.encoding.impl;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
-import org.apache.http.client.methods.HttpUriRequest;
-import org.apache.http.client.methods.RequestBuilder;
+import org.apache.hc.client5.http.classic.methods.HttpUriRequest;
+import org.apache.hc.core5.http.ClassicHttpRequest;
+import org.apache.hc.core5.http.io.support.ClassicRequestBuilder;
import org.opensaml.profile.context.ProfileRequestContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -43,7 +44,7 @@ public class DefaultAuthCodeTokenRequestEncoder extends AbstractRequestEncoderFu
private final Logger log = LoggerFactory.getLogger(DefaultAuthCodeTokenRequestEncoder.class);
@Override
- @Nullable public HttpUriRequest doApply(@Nonnull final ProfileRequestContext profileRequestContext) {
+ @Nullable public ClassicHttpRequest doApply(@Nonnull final ProfileRequestContext profileRequestContext) {
try {
if (getClientAuthenticationContext() == null) {
@@ -73,14 +74,14 @@ public class DefaultAuthCodeTokenRequestEncoder extends AbstractRequestEncoderFu
*
* @return the convert HTTP request
*/
- @Nullable private HttpUriRequest convertHttpRequest(@Nonnull final HTTPRequest request) {
+ @Nullable private ClassicHttpRequest convertHttpRequest(@Nonnull final HTTPRequest request) {
if (request.getMethod() != HTTPRequest.Method.POST) {
// Should never happen as HTTPRequest should always use POST
log.warn("Token Request must use the HTTP POST method, is trying to use '{}'", request.getMethod());
return null;
}
- final RequestBuilder rb = RequestBuilder.post().setUri(request.getURI()).setHeader(
+ final ClassicRequestBuilder rb = ClassicRequestBuilder.post().setUri(request.getURI()).setHeader(
"Content-Type", request.getEntityContentType().toString())
.setCharset(StandardCharset.UTF_8);
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/encoding/impl/DefaultUserInfoRequestEncoder.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/encoding/impl/DefaultUserInfoRequestEncoder.java
index 4295e67..3da1521 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/encoding/impl/DefaultUserInfoRequestEncoder.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/encoding/impl/DefaultUserInfoRequestEncoder.java
@@ -21,11 +21,12 @@ import java.net.URI;
import java.util.function.Function;
import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
-import org.apache.http.client.methods.HttpUriRequest;
-import org.apache.http.client.methods.RequestBuilder;
-import org.apache.http.client.utils.URIBuilder;
-import org.apache.http.entity.ContentType;
+import org.apache.hc.core5.http.ClassicHttpRequest;
+import org.apache.hc.core5.http.ContentType;
+import org.apache.hc.core5.http.io.support.ClassicRequestBuilder;
+import org.apache.hc.core5.net.URIBuilder;
import org.opensaml.messaging.context.navigate.ChildContextLookup;
import org.opensaml.profile.context.ProfileRequestContext;
import org.opensaml.profile.context.navigate.InboundMessageContextLookup;
@@ -40,9 +41,9 @@ import net.shibboleth.idp.plugin.authn.oidc.rp.config.navigate.UserInfoHttpReque
import net.shibboleth.idp.plugin.authn.oidc.rp.context.AccessTokenResponseContext;
import net.shibboleth.idp.plugin.authn.oidc.rp.exception.OIDCRPException;
import net.shibboleth.oidc.profile.oauth2.config.OAuth2AuthorizationProfileConfiguration.HttpRequestMethod;
-import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.annotation.constraint.NotEmpty;
+import net.shibboleth.shared.component.ComponentSupport;
+import net.shibboleth.shared.logic.Constraint;
/**
* Default encoder for UserInfo requests. Supports either GET or POST requests.
@@ -101,7 +102,7 @@ public class DefaultUserInfoRequestEncoder extends AbstractRequestEncoderFunctio
@Override
- public HttpUriRequest doApply(@Nonnull final ProfileRequestContext profileRequestContext) {
+ @Nullable public ClassicHttpRequest doApply(@Nonnull final ProfileRequestContext profileRequestContext) {
try {
final HttpRequestMethod requestMethod = httpMethodLookupStrategy.apply(profileRequestContext);
@@ -124,16 +125,16 @@ public class DefaultUserInfoRequestEncoder extends AbstractRequestEncoderFunctio
.build();
// Add headers and create request.
- RequestBuilder rb = null;
+ ClassicRequestBuilder rb = null;
if (requestMethod == HttpRequestMethod.GET) {
- rb = RequestBuilder.get().setUri(uri)
+ rb = ClassicRequestBuilder.get().setUri(uri)
.setHeader("Content-Type", ContentType.APPLICATION_FORM_URLENCODED.getMimeType())
.setCharset(StandardCharset.UTF_8);
addBearerTokenToGet(rb, responseCtx);
} else if (requestMethod == HttpRequestMethod.POST) {
- rb = RequestBuilder.post().setUri(uri)
+ rb = ClassicRequestBuilder.post().setUri(uri)
.setHeader("Content-Type", ContentType.APPLICATION_FORM_URLENCODED.getMimeType())
.setCharset(StandardCharset.UTF_8);
@@ -143,7 +144,7 @@ public class DefaultUserInfoRequestEncoder extends AbstractRequestEncoderFunctio
return null;
}
- final HttpUriRequest request = rb.build();
+ final ClassicHttpRequest request = rb.build();
log.debug("UserInfo request URL '{}'",request);
return request;
@@ -161,7 +162,7 @@ public class DefaultUserInfoRequestEncoder extends AbstractRequestEncoderFunctio
*
* @throws OIDCRPException if there is an issue adding the bearer token to the 'access_token' parameter.
*/
- private void addBearerTokenToPost(@Nonnull final RequestBuilder rb,
+ private void addBearerTokenToPost(@Nonnull final ClassicRequestBuilder rb,
@Nonnull final AccessTokenResponseContext responseCtx) throws OIDCRPException {
if (responseCtx.getTokenResponse() == null) {
@@ -182,7 +183,7 @@ public class DefaultUserInfoRequestEncoder extends AbstractRequestEncoderFunctio
*
* @throws OIDCRPException if there is an issue adding the bearer token to the Authorization header.
*/
- private void addBearerTokenToGet(@Nonnull final RequestBuilder rb,
+ private void addBearerTokenToGet(@Nonnull final ClassicRequestBuilder rb,
@Nonnull final AccessTokenResponseContext responseCtx) throws OIDCRPException {
if (responseCtx.getTokenResponse() == null) {
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/AbstractHttpOIDCAuthenticationAction.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/AbstractHttpOIDCAuthenticationAction.java
index f5b22f6..2ba9c5d 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/AbstractHttpOIDCAuthenticationAction.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/AbstractHttpOIDCAuthenticationAction.java
@@ -23,10 +23,11 @@ import java.util.function.Function;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
-import org.apache.http.HttpResponse;
-import org.apache.http.client.HttpClient;
-import org.apache.http.client.methods.HttpUriRequest;
-import org.apache.http.client.protocol.HttpClientContext;
+import org.apache.hc.client5.http.classic.HttpClient;
+import org.apache.hc.client5.http.classic.methods.HttpUriRequest;
+import org.apache.hc.client5.http.protocol.HttpClientContext;
+import org.apache.hc.core5.http.ClassicHttpRequest;
+import org.apache.hc.core5.http.ClassicHttpResponse;
import org.opensaml.profile.context.ProfileRequestContext;
import org.opensaml.security.httpclient.HttpClientSecurityParameters;
import org.opensaml.security.httpclient.HttpClientSecuritySupport;
@@ -39,11 +40,11 @@ import com.nimbusds.oauth2.sdk.Response;
import net.shibboleth.idp.plugin.authn.oidc.rp.context.AbstractAuthenticatableOIDCContext;
import net.shibboleth.idp.plugin.authn.oidc.rp.exception.OIDCRPException;
-import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
-import net.shibboleth.utilities.java.support.annotation.constraint.ThreadSafeAfterInit;
-import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.annotation.constraint.NonnullAfterInit;
+import net.shibboleth.shared.annotation.constraint.ThreadSafeAfterInit;
+import net.shibboleth.shared.component.ComponentInitializationException;
+import net.shibboleth.shared.component.ComponentSupport;
+import net.shibboleth.shared.logic.Constraint;
/**
* An abstract class for OIDC actions that make synchronous HTTP requests and return {@link Response responses}.
@@ -58,10 +59,10 @@ public abstract class AbstractHttpOIDCAuthenticationAction<T extends Response>
@Nonnull private final Logger log = LoggerFactory.getLogger(AbstractHttpOIDCAuthenticationAction.class);
/** The message encoder to encode the HTTP request into a {@link HttpUriRequest}.*/
- @NonnullAfterInit private Function<ProfileRequestContext, HttpUriRequest> httpRequestEncoderStrategy;
+ @NonnullAfterInit private Function<ProfileRequestContext, ClassicHttpRequest> httpRequestEncoderStrategy;
/** The message decoder to decode the HTTP response.*/
- @NonnullAfterInit private Function<HttpResponse, T> httpResponseDecoderStrategy;
+ @NonnullAfterInit private Function<ClassicHttpResponse, T> httpResponseDecoderStrategy;
/** HttpClient for contacting the endpoint. */
@NonnullAfterInit private HttpClient httpClient;
@@ -90,7 +91,7 @@ public abstract class AbstractHttpOIDCAuthenticationAction<T extends Response>
*
* @return the request encoder.
*/
- @NonnullAfterInit public Function<ProfileRequestContext, HttpUriRequest> getHttpRequestEncoderStrategy() {
+ @NonnullAfterInit public Function<ProfileRequestContext, ClassicHttpRequest> getHttpRequestEncoderStrategy() {
return httpRequestEncoderStrategy;
}
@@ -99,7 +100,7 @@ public abstract class AbstractHttpOIDCAuthenticationAction<T extends Response>
*
* @return the response decoder.
*/
- @NonnullAfterInit public Function<HttpResponse, T> getHttpResponseDecoderStrategy() {
+ @NonnullAfterInit public Function<ClassicHttpResponse, T> getHttpResponseDecoderStrategy() {
return httpResponseDecoderStrategy;
}
@@ -108,7 +109,7 @@ public abstract class AbstractHttpOIDCAuthenticationAction<T extends Response>
*
* @param strategy the strategy
*/
- public void setHttpResponseDecoderStrategy(@Nonnull final Function<HttpResponse, T> strategy) {
+ public void setHttpResponseDecoderStrategy(@Nonnull final Function<ClassicHttpResponse, T> strategy) {
ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
@@ -116,12 +117,12 @@ public abstract class AbstractHttpOIDCAuthenticationAction<T extends Response>
}
/**
- * Set the strategy used to map a HTTP request to a {@link HttpUriRequest} object.
+ * Set the strategy used to map a HTTP request to a {@link ClassicHttpRequest} object.
*
* @param strategy the strategy
*/
public void setHttpRequestEncoderStrategy(
- @Nonnull final Function<ProfileRequestContext, HttpUriRequest> strategy) {
+ @Nonnull final Function<ProfileRequestContext, ClassicHttpRequest> strategy) {
ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
@@ -170,11 +171,11 @@ public abstract class AbstractHttpOIDCAuthenticationAction<T extends Response>
@Nonnull protected T handleRequest(@Nonnull final ProfileRequestContext profileRequestContext,
@Nullable final AbstractAuthenticatableOIDCContext authenticatableContext) throws OIDCRPException {
try {
- final HttpUriRequest request = getHttpRequestEncoderStrategy().apply(profileRequestContext);
+ final ClassicHttpRequest request = getHttpRequestEncoderStrategy().apply(profileRequestContext);
if (request == null) {
throw new OIDCRPException("Unable to encode HTTP request");
}
- final HttpResponse response = executeHttpRequest(request, authenticatableContext);
+ final ClassicHttpResponse response = executeHttpRequest(request, authenticatableContext);
final T responseObject = getHttpResponseDecoderStrategy().apply(response);
if (responseObject == null) {
throw new OIDCRPException("Unable to process HTTP response");
@@ -216,7 +217,7 @@ public abstract class AbstractHttpOIDCAuthenticationAction<T extends Response>
*
* @throws IOException if there is an error producing a response
*/
- @Nonnull protected HttpResponse executeHttpRequest(@Nonnull final HttpUriRequest request,
+ @Nonnull protected ClassicHttpResponse executeHttpRequest(@Nonnull final ClassicHttpRequest request,
@Nullable final AbstractAuthenticatableOIDCContext authenticatableContext) throws IOException {
Constraint.isNotNull(request, "Request can not be null");
@@ -224,8 +225,10 @@ public abstract class AbstractHttpOIDCAuthenticationAction<T extends Response>
final HttpClientContext clientContext = HttpClientContext.create();
HttpClientSecuritySupport.marshalSecurityParameters(clientContext, httpClientSecurityParameters, true);
HttpClientSecuritySupport.addDefaultTLSTrustEngineCriteria(clientContext, request);
- final HttpResponse httpResponse = httpClient.execute(request, clientContext);
- HttpClientSecuritySupport.checkTLSCredentialEvaluated(clientContext, request.getURI().getScheme());
+ final ClassicHttpResponse httpResponse = httpClient.executeOpen(null, request, clientContext);
+ final String scheme = request.getScheme();
+ assert scheme != null;
+ HttpClientSecuritySupport.checkTLSCredentialEvaluated(clientContext, scheme);
// Will have thrown prior to this if TLS credential had not been evaluated.
if (authenticatableContext != null) {
authenticatableContext.setAuthenticated(true);
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/AbstractOIDCAuthenticationResponseAction.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/AbstractOIDCAuthenticationResponseAction.java
index 2f29044..ac2380e 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/AbstractOIDCAuthenticationResponseAction.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/AbstractOIDCAuthenticationResponseAction.java
@@ -39,8 +39,8 @@ import net.shibboleth.idp.authn.context.AuthenticationContext;
import net.shibboleth.oidc.metadata.context.OIDCProviderMetadataContext;
import net.shibboleth.oidc.profile.core.OIDCAuthenticationRequest;
import net.shibboleth.oidc.profile.messaging.context.OIDCPeerEntityContext;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.component.ComponentSupport;
+import net.shibboleth.shared.logic.Constraint;
/**
* Abstract class for actions based on the {@link AuthenticationResponse} located under
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/AccessTokenToPrivateCredentialsMappingStrategy.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/AccessTokenToPrivateCredentialsMappingStrategy.java
index b126beb..cbdbfb6 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/AccessTokenToPrivateCredentialsMappingStrategy.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/AccessTokenToPrivateCredentialsMappingStrategy.java
@@ -37,7 +37,7 @@ import com.nimbusds.oauth2.sdk.token.RefreshToken;
import net.shibboleth.idp.plugin.authn.oidc.rp.context.AccessTokenResponseContext;
import net.shibboleth.idp.plugin.authn.oidc.rp.principal.OAuth2AccessTokenPrincipal;
import net.shibboleth.idp.plugin.authn.oidc.rp.principal.OAuth2RefreshTokenPrincipal;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.logic.Constraint;
/**
* A mapping strategy that locates the {@link AccessTokenResponseContext} from the {@link ProfileRequestContext} and
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/AuthorizationController.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/AuthorizationController.java
index 49e7c9a..2fd70b0 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/AuthorizationController.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/AuthorizationController.java
@@ -22,9 +22,6 @@ import java.util.function.Function;
import javax.annotation.Nonnull;
import javax.annotation.concurrent.ThreadSafe;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
import org.opensaml.messaging.context.MessageContext;
import org.opensaml.messaging.context.navigate.ChildContextLookup;
@@ -41,6 +38,9 @@ import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import net.shibboleth.idp.authn.ExternalAuthentication;
import net.shibboleth.idp.authn.ExternalAuthenticationException;
import net.shibboleth.idp.authn.context.AuthenticationContext;
@@ -50,11 +50,11 @@ import net.shibboleth.idp.plugin.authn.oidc.rp.context.OutboundMessageHandlerCon
import net.shibboleth.idp.plugin.authn.oidc.rp.exception.OIDCProxyException;
import net.shibboleth.oidc.profile.core.OIDCAuthenticationRequest;
import net.shibboleth.oidc.profile.messaging.context.OIDCPeerEntityContext;
-import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
-import net.shibboleth.utilities.java.support.component.AbstractInitializableComponent;
-import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.annotation.constraint.NotEmpty;
+import net.shibboleth.shared.component.AbstractInitializableComponent;
+import net.shibboleth.shared.component.ComponentInitializationException;
+import net.shibboleth.shared.component.ComponentSupport;
+import net.shibboleth.shared.logic.Constraint;
/**
* Servlet compatible with the {@link ExternalAuthentication} interface that begins, by HTTP redirect, an
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/BuildRequestObject.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/BuildRequestObject.java
index 4d9e0c5..c686989 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/BuildRequestObject.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/BuildRequestObject.java
@@ -45,13 +45,13 @@ import com.nimbusds.openid.connect.sdk.op.OIDCProviderMetadata;
import net.shibboleth.idp.authn.AbstractAuthenticationAction;
import net.shibboleth.idp.authn.AuthnEventIds;
import net.shibboleth.idp.authn.context.AuthenticationContext;
-import net.shibboleth.idp.profile.context.RelyingPartyContext;
import net.shibboleth.oidc.metadata.context.OIDCProviderMetadataContext;
import net.shibboleth.oidc.profile.core.OIDCAuthenticationRequest;
import net.shibboleth.oidc.profile.encoding.AuthenticationContextClassReferenceSupport;
import net.shibboleth.oidc.profile.messaging.context.OIDCPeerEntityContext;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.shared.component.ComponentSupport;
+import net.shibboleth.shared.logic.Constraint;
/**
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/DefaultRedirectUriCreationFunction.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/DefaultRedirectUriCreationFunction.java
index 0573a43..5c2b4aa 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/DefaultRedirectUriCreationFunction.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/DefaultRedirectUriCreationFunction.java
@@ -26,24 +26,24 @@ import java.util.function.Function;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
-import javax.servlet.http.HttpServletRequest;
-import org.apache.http.client.utils.URIBuilder;
+import org.apache.hc.core5.net.URIBuilder;
import org.opensaml.messaging.context.navigate.ChildContextLookup;
import org.opensaml.profile.context.ProfileRequestContext;
import org.opensaml.profile.context.navigate.OutboundMessageContextLookup;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import jakarta.servlet.http.HttpServletRequest;
import net.shibboleth.idp.plugin.authn.oidc.rp.context.OAuth2ClientContext;
import net.shibboleth.oidc.profile.messaging.context.OIDCPeerEntityContext;
-import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
-import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
-import net.shibboleth.utilities.java.support.annotation.constraint.ThreadSafeAfterInit;
-import net.shibboleth.utilities.java.support.component.AbstractIdentifiableInitializableComponent;
-import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.annotation.constraint.NonnullAfterInit;
+import net.shibboleth.shared.annotation.constraint.NotEmpty;
+import net.shibboleth.shared.annotation.constraint.ThreadSafeAfterInit;
+import net.shibboleth.shared.component.AbstractIdentifiableInitializableComponent;
+import net.shibboleth.shared.component.ComponentInitializationException;
+import net.shibboleth.shared.component.ComponentSupport;
+import net.shibboleth.shared.logic.Constraint;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
/**
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ExchangeCodeForAccessToken.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ExchangeCodeForAccessToken.java
index 1469094..61980b0 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ExchangeCodeForAccessToken.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ExchangeCodeForAccessToken.java
@@ -36,8 +36,8 @@ import net.shibboleth.idp.authn.AuthnEventIds;
import net.shibboleth.idp.authn.context.AuthenticationContext;
import net.shibboleth.idp.plugin.authn.oidc.rp.context.AccessTokenResponseContext;
import net.shibboleth.idp.plugin.authn.oidc.rp.exception.OIDCRPException;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.component.ComponentSupport;
+import net.shibboleth.shared.logic.Constraint;
/**
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/InitializeAuthorizationRequest.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/InitializeAuthorizationRequest.java
index cb6da7e..a2a1994 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/InitializeAuthorizationRequest.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/InitializeAuthorizationRequest.java
@@ -36,8 +36,8 @@ import net.shibboleth.idp.profile.AbstractProfileAction;
import net.shibboleth.idp.profile.IdPEventIds;
import net.shibboleth.oidc.profile.core.OIDCAuthenticationRequest;
import net.shibboleth.oidc.profile.messaging.context.OIDCPeerEntityContext;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.component.ComponentSupport;
+import net.shibboleth.shared.logic.Constraint;
/**
* An action that creates an {@link OIDCAuthenticationRequest} shell to populate in future steps,
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/InitializeOAuth2ClientAuthenticationContext.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/InitializeOAuth2ClientAuthenticationContext.java
index 8364a9e..a22dabe 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/InitializeOAuth2ClientAuthenticationContext.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/InitializeOAuth2ClientAuthenticationContext.java
@@ -32,8 +32,8 @@ import org.slf4j.LoggerFactory;
import net.shibboleth.oidc.authn.context.OAuth2ClientAuthenticationContext;
import net.shibboleth.oidc.profile.messaging.context.OIDCPeerEntityContext;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.component.ComponentSupport;
+import net.shibboleth.shared.logic.Constraint;
/**
* An {@link AbstractMessageHandler action} that initializes an {@link OAuth2ClientAuthenticationContext} for later use.
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/InitializeOAuth2ClientAuthenticationMethodHandler.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/InitializeOAuth2ClientAuthenticationMethodHandler.java
index 0ac3ae1..d6d6c15 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/InitializeOAuth2ClientAuthenticationMethodHandler.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/InitializeOAuth2ClientAuthenticationMethodHandler.java
@@ -62,7 +62,6 @@ import com.nimbusds.oauth2.sdk.id.ClientID;
import com.nimbusds.openid.connect.sdk.op.OIDCProviderMetadata;
import net.shibboleth.idp.profile.IdPEventIds;
-import net.shibboleth.idp.profile.context.RelyingPartyContext;
import net.shibboleth.oidc.authn.context.OAuth2ClientAuthenticationContext;
import net.shibboleth.oidc.metadata.context.OIDCProviderMetadataContext;
import net.shibboleth.oidc.profile.config.OIDCAuthenticationRelyingPartyProfileConfiguration;
@@ -72,8 +71,9 @@ import net.shibboleth.oidc.security.credential.ClientSecretCredential;
import net.shibboleth.oidc.security.credential.JWKCredential;
import net.shibboleth.oidc.security.jose.SignatureSigningParameters;
import net.shibboleth.oidc.security.jose.context.SecurityParametersContext;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.shared.component.ComponentSupport;
+import net.shibboleth.shared.logic.Constraint;
/**
* An {@link AbstractMessageHandler action} that resolves the Client Authentication method for the chosen
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/InitializeOAuth2ClientContext.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/InitializeOAuth2ClientContext.java
index 1031ebb..d44175f 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/InitializeOAuth2ClientContext.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/InitializeOAuth2ClientContext.java
@@ -35,12 +35,12 @@ import net.shibboleth.idp.plugin.authn.oidc.rp.config.navigate.RedirectUriLookup
import net.shibboleth.idp.plugin.authn.oidc.rp.context.OAuth2ClientContext;
import net.shibboleth.idp.profile.AbstractProfileAction;
import net.shibboleth.idp.profile.IdPEventIds;
-import net.shibboleth.idp.profile.context.RelyingPartyContext;
import net.shibboleth.oidc.profile.config.OIDCAuthenticationRelyingPartyProfileConfiguration;
import net.shibboleth.oidc.profile.messaging.context.OIDCPeerEntityContext;
-import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.shared.annotation.constraint.NonnullAfterInit;
+import net.shibboleth.shared.component.ComponentSupport;
+import net.shibboleth.shared.logic.Constraint;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
/**
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/InitializeOutboundAuthorizationRequestMessageContext.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/InitializeOutboundAuthorizationRequestMessageContext.java
index 864442c..8c21859 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/InitializeOutboundAuthorizationRequestMessageContext.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/InitializeOutboundAuthorizationRequestMessageContext.java
@@ -34,12 +34,12 @@ import org.slf4j.LoggerFactory;
import net.shibboleth.idp.profile.AbstractProfileAction;
import net.shibboleth.idp.profile.IdPEventIds;
-import net.shibboleth.idp.profile.context.RelyingPartyContext;
import net.shibboleth.oidc.metadata.context.OIDCMetadataContext;
import net.shibboleth.oidc.metadata.context.OIDCProviderMetadataContext;
import net.shibboleth.oidc.profile.messaging.context.OIDCPeerEntityContext;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.shared.component.ComponentSupport;
+import net.shibboleth.shared.logic.Constraint;
/**
* Initialize an outbound message context with an OIDC peer entity context ready for an authorization/authentication
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/InitializeRelyingPartyContext.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/InitializeRelyingPartyContext.java
index bfe6e6c..4f9f203 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/InitializeRelyingPartyContext.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/InitializeRelyingPartyContext.java
@@ -33,12 +33,12 @@ import org.slf4j.LoggerFactory;
import net.shibboleth.idp.profile.AbstractProfileAction;
import net.shibboleth.idp.profile.IdPEventIds;
-import net.shibboleth.idp.profile.context.RelyingPartyContext;
import net.shibboleth.oidc.metadata.context.OIDCMetadataContext;
import net.shibboleth.oidc.metadata.context.OIDCProviderMetadataContext;
import net.shibboleth.oidc.profile.messaging.context.OIDCPeerEntityContext;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.shared.component.ComponentSupport;
+import net.shibboleth.shared.logic.Constraint;
/**
* Action that adds a {@link RelyingPartyContext} to the current {@link ProfileRequestContext} tree via a creation
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/InitializeUnverifiedRelyingPartyContext.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/InitializeUnverifiedRelyingPartyContext.java
index b933460..38478fb 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/InitializeUnverifiedRelyingPartyContext.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/InitializeUnverifiedRelyingPartyContext.java
@@ -29,9 +29,9 @@ import org.slf4j.LoggerFactory;
import net.shibboleth.idp.profile.AbstractProfileAction;
import net.shibboleth.idp.profile.IdPEventIds;
-import net.shibboleth.idp.profile.context.RelyingPartyContext;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.shared.component.ComponentSupport;
+import net.shibboleth.shared.logic.Constraint;
/**
* Action that adds an unverified {@link RelyingPartyContext} to the current {@link ProfileRequestContext} tree via a
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/OIDCProxySupport.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/OIDCProxySupport.java
index cb5e108..ab0bbee 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/OIDCProxySupport.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/OIDCProxySupport.java
@@ -25,7 +25,7 @@ import org.apache.commons.codec.DecoderException;
import org.apache.commons.codec.binary.Hex;
import net.shibboleth.idp.plugin.authn.oidc.rp.exception.OIDCProxyException;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.logic.Constraint;
/** Support class for OIDC proxy related implementations.*/
public final class OIDCProxySupport {
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/PrepareOIDCInboundMessageContext.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/PrepareOIDCInboundMessageContext.java
index 7eab3c2..f84380b 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/PrepareOIDCInboundMessageContext.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/PrepareOIDCInboundMessageContext.java
@@ -35,10 +35,10 @@ import com.google.common.base.Predicates;
import net.shibboleth.idp.authn.context.AuthenticationContext;
import net.shibboleth.idp.profile.AbstractProfileAction;
import net.shibboleth.oidc.profile.messaging.context.OIDCPeerEntityContext;
-import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
-import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.annotation.constraint.NonnullAfterInit;
+import net.shibboleth.shared.component.ComponentInitializationException;
+import net.shibboleth.shared.component.ComponentSupport;
+import net.shibboleth.shared.logic.Constraint;
/**
* Action that adds an inbound {@link MessageContext} and a {@link OIDCPeerEntityContext} to the
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ProcessEndUserClaims.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ProcessEndUserClaims.java
index 0fca92e..cd9e93a 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ProcessEndUserClaims.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ProcessEndUserClaims.java
@@ -42,8 +42,8 @@ import net.shibboleth.idp.authn.context.AuthenticationContext;
import net.shibboleth.idp.plugin.authn.oidc.rp.context.AccessTokenResponseContext;
import net.shibboleth.idp.plugin.authn.oidc.rp.context.EndUserClaimsContext;
import net.shibboleth.idp.plugin.authn.oidc.rp.context.UserInfoResponseContext;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.component.ComponentSupport;
+import net.shibboleth.shared.logic.Constraint;
/**
* Process the end-user claims from the id_token and possible UserInfo claims sets.
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/SimpleOIDCSubjectIdentifierCanonicalization.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/SimpleOIDCSubjectIdentifierCanonicalization.java
index 7c951c5..b2d5dc5 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/SimpleOIDCSubjectIdentifierCanonicalization.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/SimpleOIDCSubjectIdentifierCanonicalization.java
@@ -33,7 +33,7 @@ import net.shibboleth.idp.authn.AuthnEventIds;
import net.shibboleth.idp.authn.SubjectCanonicalizationException;
import net.shibboleth.idp.authn.context.SubjectCanonicalizationContext;
import net.shibboleth.idp.plugin.authn.oidc.rp.principal.OIDCSubjectIdentifierPrincipal;
-import net.shibboleth.utilities.java.support.annotation.ParameterName;
+import net.shibboleth.shared.annotation.ParameterName;
/**
* An action that operates on a {@link SubjectCanonicalizationContext} child of the current
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/UserInfoEndpointLookup.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/UserInfoEndpointLookup.java
index c910cb6..ce6891a 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/UserInfoEndpointLookup.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/UserInfoEndpointLookup.java
@@ -37,8 +37,8 @@ import net.shibboleth.idp.plugin.authn.oidc.rp.context.AccessTokenResponseContex
import net.shibboleth.idp.plugin.authn.oidc.rp.context.UserInfoResponseContext;
import net.shibboleth.idp.plugin.authn.oidc.rp.exception.OIDCRPException;
import net.shibboleth.oidc.profile.core.OidcEventIds;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.component.ComponentSupport;
+import net.shibboleth.shared.logic.Constraint;
/**
* Request information from the UserInfo OAuth2.0 endpoint using the access_token already present
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ValidateOAuthAccessTokenResponse.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ValidateOAuthAccessTokenResponse.java
index b292d73..bc57212 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ValidateOAuthAccessTokenResponse.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ValidateOAuthAccessTokenResponse.java
@@ -37,9 +37,9 @@ import net.shibboleth.idp.authn.AbstractAuthenticationAction;
import net.shibboleth.idp.authn.context.AuthenticationContext;
import net.shibboleth.idp.plugin.authn.oidc.rp.context.AccessTokenResponseContext;
import net.shibboleth.oidc.profile.core.OidcEventIds;
-import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.annotation.constraint.NotEmpty;
+import net.shibboleth.shared.component.ComponentSupport;
+import net.shibboleth.shared.logic.Constraint;
/**
* Validation action that validates the OAuth Access Token Response against RFC 6749 section 5.1
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ValidateOIDCAuthentication.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ValidateOIDCAuthentication.java
index 031fc81..40a2c80 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ValidateOIDCAuthentication.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ValidateOIDCAuthentication.java
@@ -67,18 +67,19 @@ import net.shibboleth.idp.authn.principal.ProxyAuthenticationPrincipal;
import net.shibboleth.idp.plugin.authn.oidc.rp.context.EndUserClaimsContext;
import net.shibboleth.idp.plugin.authn.oidc.rp.principal.OIDCSubjectIdentifierPrincipal;
import net.shibboleth.idp.profile.IdPEventIds;
-import net.shibboleth.idp.profile.context.RelyingPartyContext;
-import net.shibboleth.idp.saml.profile.context.navigate.SAMLMetadataContextLookupFunction;
import net.shibboleth.oidc.profile.config.OIDCAuthenticationRelyingPartyProfileConfiguration;
-import net.shibboleth.utilities.java.support.annotation.constraint.Live;
-import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
-import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
-import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
-import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.service.ReloadableService;
-import net.shibboleth.utilities.java.support.service.ServiceableComponent;
+import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.saml.profile.context.navigate.SAMLMetadataContextLookupFunction;
+import net.shibboleth.shared.annotation.constraint.Live;
+import net.shibboleth.shared.annotation.constraint.NonnullAfterInit;
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
+import net.shibboleth.shared.annotation.constraint.NotEmpty;
+import net.shibboleth.shared.component.ComponentInitializationException;
+import net.shibboleth.shared.component.ComponentSupport;
+import net.shibboleth.shared.logic.Constraint;
+import net.shibboleth.shared.service.ReloadableService;
+import net.shibboleth.shared.service.ServiceException;
+import net.shibboleth.shared.service.ServiceableComponent;
/**
* An action that builds an {@link AuthenticationResult} based on an inbound OIDC authentication response.
@@ -475,36 +476,32 @@ public class ValidateOIDCAuthentication extends AbstractValidationAction {
final Multimap<String,IdPAttribute> mapped = HashMultimap.create();
- ServiceableComponent<AttributeTranscoderRegistry> component = null;
- try {
- component = transcoderRegistry.getServiceableComponent();
- if (component == null) {
- log.error("Attribute transcoder service unavailable");
- return;
- }
-
- for (final Map.Entry<String, Object> claim :
- endUserContext.getEndUserClaims().toJSONObject().entrySet()) {
- try {
- final JSONObject jsonClaim = new JSONObject();
- jsonClaim.put(claim.getKey(), claim.getValue());
- decodeAttribute(component.getComponent(), profileRequestContext, jsonClaim, mapped);
- } catch (final AttributeDecodingException e) {
- log.error("{} Error decoding inbound claim", getLogPrefix(), e);
- }
- }
- } finally {
- if (component != null) {
- component.unpinComponent();
- }
+ assert transcoderRegistry!= null;
+
+ try (final ServiceableComponent<AttributeTranscoderRegistry> component =
+ transcoderRegistry.getServiceableComponent()) {
+ assert endUserContext.getEndUserClaims() != null;
+ for (final Map.Entry<String, Object> claim :
+ endUserContext.getEndUserClaims().toJSONObject().entrySet()) {
+ try {
+ final JSONObject jsonClaim = new JSONObject();
+ jsonClaim.put(claim.getKey(), claim.getValue());
+ decodeAttribute(component.getComponent(), profileRequestContext, jsonClaim, mapped);
+ } catch (final AttributeDecodingException e) {
+ log.error("{} Error decoding inbound claim", getLogPrefix(), e);
+ }
+ }
+ } catch (final ServiceException e) {
+ log.error("Attribute transcoder service unavailable", e);
+ return;
}
-
+
log.debug("{} Incoming OIDC Attributes mapped to attribute IDs: {}", getLogPrefix(), mapped.keySet());
if (!mapped.isEmpty()) {
attributeContext = profileRequestContext
.getSubcontext(RelyingPartyContext.class)
- .getSubcontext(AttributeContext.class, true);
+ .ensureSubcontext(AttributeContext.class);
attributeContext.setUnfilteredIdPAttributes(mapped.values());
attributeContext.setIdPAttributes(null);
filterAttributes(profileRequestContext);
@@ -517,36 +514,27 @@ public class ValidateOIDCAuthentication extends AbstractValidationAction {
* @param profileRequestContext current profile request context
*/
private void filterAttributes(@Nonnull final ProfileRequestContext profileRequestContext) {
- if (attributeFilterService == null) {
+ final ReloadableService<AttributeFilter> service = attributeFilterService;
+ if (service == null) {
log.warn("{} No AttributeFilter service provided", getLogPrefix());
return;
}
final AttributeFilterContext filterContext =
- profileRequestContext.getSubcontext(AttributeFilterContext.class, true);
-
+ profileRequestContext.ensureSubcontext(AttributeFilterContext.class);
populateFilterContext(profileRequestContext, filterContext);
- ServiceableComponent<AttributeFilter> component = null;
-
- try {
- component = attributeFilterService.getServiceableComponent();
- if (null == component) {
- log.error("{} Error while filtering inbound attributes: Invalid Attribute Filter configuration",
- getLogPrefix());
- } else {
- final AttributeFilter filter = component.getComponent();
- filter.filterAttributes(filterContext);
- filterContext.getParent().removeSubcontext(filterContext);
- attributeContext.setIdPAttributes(filterContext.getFilteredIdPAttributes().values());
- }
+ try (final ServiceableComponent<AttributeFilter> component = service.getServiceableComponent()) {
+ final AttributeFilter filter = component.getComponent();
+ filter.filterAttributes(filterContext);
+ filterContext.removeFromParent();
+ assert attributeContext!=null;
+ attributeContext.setIdPAttributes(filterContext.getFilteredIdPAttributes().values());
} catch (final AttributeFilterException e) {
log.error("{} Error while filtering inbound attributes", getLogPrefix(), e);
- } finally {
- if (null != component) {
- component.unpinComponent();
- }
- }
+ } catch (final ServiceException e) {
+ log.error("{} Invalid AttributeFilter configuration", getLogPrefix(), e);
+ }
}
/**
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ValidateResponseState.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ValidateResponseState.java
index 5f3ba96..4385a05 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ValidateResponseState.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ValidateResponseState.java
@@ -26,7 +26,7 @@ import org.slf4j.LoggerFactory;
import net.shibboleth.idp.authn.AuthnEventIds;
import net.shibboleth.idp.authn.context.AuthenticationContext;
-import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
+import net.shibboleth.shared.annotation.constraint.NotEmpty;
/**
* Authentication action that validates the authentication response state parameter
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ValidateTokenClaims.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ValidateTokenClaims.java
index 4736b52..baf5357 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ValidateTokenClaims.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ValidateTokenClaims.java
@@ -40,10 +40,10 @@ import net.shibboleth.idp.plugin.authn.oidc.rp.exception.OIDCRPException;
import net.shibboleth.oidc.jwt.claims.ClaimsValidator;
import net.shibboleth.oidc.jwt.claims.JWTValidationException;
import net.shibboleth.oidc.profile.core.OidcEventIds;
-import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
-import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.annotation.constraint.NonnullAfterInit;
+import net.shibboleth.shared.component.ComponentInitializationException;
+import net.shibboleth.shared.component.ComponentSupport;
+import net.shibboleth.shared.logic.Constraint;
/**
* Action that validates the claims of a JWT using the supplied
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ValidateUserInfoJSONObjectClaims.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ValidateUserInfoJSONObjectClaims.java
index d257af5..ca5a0a8 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ValidateUserInfoJSONObjectClaims.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ValidateUserInfoJSONObjectClaims.java
@@ -42,8 +42,8 @@ import net.shibboleth.idp.authn.context.AuthenticationContext;
import net.shibboleth.idp.plugin.authn.oidc.rp.context.AccessTokenResponseContext;
import net.shibboleth.idp.plugin.authn.oidc.rp.context.UserInfoResponseContext;
import net.shibboleth.oidc.profile.core.OidcEventIds;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.component.ComponentSupport;
+import net.shibboleth.shared.logic.Constraint;
/**
* Validate a successful UserInfo JSON Object Response according to section 5.3.2 of OpenID Connect Core 1.0.
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AbstractOIDCAuthenticationRequestActionMessageHandler.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AbstractOIDCAuthenticationRequestActionMessageHandler.java
index fa895d5..5535f4a 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AbstractOIDCAuthenticationRequestActionMessageHandler.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AbstractOIDCAuthenticationRequestActionMessageHandler.java
@@ -22,7 +22,6 @@ import java.util.function.Predicate;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
-import javax.servlet.http.HttpServletRequest;
import org.opensaml.messaging.context.MessageContext;
import org.opensaml.messaging.context.navigate.ChildContextLookup;
@@ -36,15 +35,16 @@ import org.slf4j.LoggerFactory;
import com.google.common.base.Predicates;
import com.nimbusds.openid.connect.sdk.op.OIDCProviderMetadata;
-import net.shibboleth.idp.profile.context.RelyingPartyContext;
+import jakarta.servlet.http.HttpServletRequest;
import net.shibboleth.idp.profile.impl.WebFlowMessageHandlerAdaptor;
import net.shibboleth.oidc.metadata.context.OIDCProviderMetadataContext;
import net.shibboleth.oidc.profile.config.OIDCAuthenticationRelyingPartyProfileConfiguration;
import net.shibboleth.oidc.profile.core.OIDCAuthenticationRequest;
import net.shibboleth.oidc.profile.messaging.context.OIDCPeerEntityContext;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.NonnullSupplier;
+import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.shared.component.ComponentSupport;
+import net.shibboleth.shared.logic.Constraint;
+import net.shibboleth.shared.primitive.NonnullSupplier;
/**
* An abstract message handler that runs inside an {@link WebFlowMessageHandlerAdaptor}
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AbstractOIDCAuthenticationRequestMessageHandler.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AbstractOIDCAuthenticationRequestMessageHandler.java
index ae024ae..d0f10ac 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AbstractOIDCAuthenticationRequestMessageHandler.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AbstractOIDCAuthenticationRequestMessageHandler.java
@@ -32,8 +32,8 @@ import org.slf4j.LoggerFactory;
import net.shibboleth.idp.plugin.authn.oidc.rp.context.OutboundMessageHandlerContext;
import net.shibboleth.idp.profile.impl.WebFlowMessageHandlerAdaptor;
import net.shibboleth.oidc.profile.core.OIDCAuthenticationRequest;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.component.ComponentSupport;
+import net.shibboleth.shared.logic.Constraint;
/**
* An abstract message handler that does *not* run inside an {@link WebFlowMessageHandlerAdaptor}. Makes available the
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddNonceHandler.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddNonceHandler.java
index 3e107ab..5e2baff 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddNonceHandler.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddNonceHandler.java
@@ -30,8 +30,8 @@ import org.slf4j.LoggerFactory;
import com.nimbusds.openid.connect.sdk.Nonce;
import net.shibboleth.idp.plugin.authn.oidc.rp.impl.OIDCProxySupport;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.component.ComponentSupport;
+import net.shibboleth.shared.logic.Constraint;
/**
* A message handler that adds a nonce from a lookup strategy to the authentication request.
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddRedirectURIHandler.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddRedirectURIHandler.java
index a58e927..e2b03c5 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddRedirectURIHandler.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddRedirectURIHandler.java
@@ -22,7 +22,6 @@ import java.util.function.BiFunction;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
-import javax.servlet.http.HttpServletRequest;
import org.opensaml.messaging.context.MessageContext;
import org.opensaml.messaging.handler.MessageHandlerException;
@@ -30,10 +29,11 @@ import org.opensaml.profile.context.ProfileRequestContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
-import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import jakarta.servlet.http.HttpServletRequest;
+import net.shibboleth.shared.annotation.constraint.NonnullAfterInit;
+import net.shibboleth.shared.component.ComponentInitializationException;
+import net.shibboleth.shared.component.ComponentSupport;
+import net.shibboleth.shared.logic.Constraint;
/**
* A message handler that adds a redirect_uri to the authentication request.
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddRequestedClaimsHandler.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddRequestedClaimsHandler.java
index 4ff01ac..79ba3c5 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddRequestedClaimsHandler.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddRequestedClaimsHandler.java
@@ -30,7 +30,7 @@ import org.slf4j.LoggerFactory;
import com.nimbusds.openid.connect.sdk.OIDCClaimsRequest;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
+import net.shibboleth.shared.component.ComponentSupport;
import net.shibboleth.utilities.java.support.logic.FunctionSupport;
/**
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddStateHandler.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddStateHandler.java
index 1aa88a6..1b6386e 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddStateHandler.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddStateHandler.java
@@ -31,8 +31,8 @@ import com.nimbusds.oauth2.sdk.id.State;
import com.nimbusds.openid.connect.sdk.claims.ClaimsSet;
import net.shibboleth.idp.plugin.authn.oidc.rp.impl.OIDCProxySupport;
-import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
+import net.shibboleth.shared.component.ComponentInitializationException;
+import net.shibboleth.shared.component.ComponentSupport;
/**
* Add state to the authentication request URL and the request object claims (if present).
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/metadata/impl/OIDCProviderMetadataLookupHandler.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/metadata/impl/OIDCProviderMetadataLookupHandler.java
index 20e0995..10e5228 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/metadata/impl/OIDCProviderMetadataLookupHandler.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/metadata/impl/OIDCProviderMetadataLookupHandler.java
@@ -41,12 +41,12 @@ import net.shibboleth.oidc.metadata.context.OIDCProviderMetadataContext;
import net.shibboleth.oidc.metadata.criterion.IssuerIDCriterion;
import net.shibboleth.oidc.profile.messaging.context.AbstractOIDCEntityContext;
import net.shibboleth.oidc.profile.messaging.context.OIDCPeerEntityContext;
-import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
-import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.resolver.CriteriaSet;
-import net.shibboleth.utilities.java.support.resolver.ResolverException;
+import net.shibboleth.shared.annotation.constraint.NonnullAfterInit;
+import net.shibboleth.shared.component.ComponentInitializationException;
+import net.shibboleth.shared.component.ComponentSupport;
+import net.shibboleth.shared.logic.Constraint;
+import net.shibboleth.shared.resolver.CriteriaSet;
+import net.shibboleth.shared.resolver.ResolverException;
/**
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/security/impl/AuthenticationRequestNonceClaimLookupStrategy.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/security/impl/AuthenticationRequestNonceClaimLookupStrategy.java
index e4ba941..c7f5212 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/security/impl/AuthenticationRequestNonceClaimLookupStrategy.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/security/impl/AuthenticationRequestNonceClaimLookupStrategy.java
@@ -30,7 +30,7 @@ import org.opensaml.profile.context.ProfileRequestContext;
import com.nimbusds.jwt.JWTClaimsSet;
import net.shibboleth.oidc.profile.core.OIDCAuthenticationRequest;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.logic.Constraint;
/**
* Lookup strategy that finds the nonce from the {@link OIDCAuthenticationRequest}. Returns {@code null} if not found.
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/security/impl/ClientAuthenticationConfigurationLookupFunction.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/security/impl/ClientAuthenticationConfigurationLookupFunction.java
index 4c23e9c..a69c174 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/security/impl/ClientAuthenticationConfigurationLookupFunction.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/security/impl/ClientAuthenticationConfigurationLookupFunction.java
@@ -34,6 +34,7 @@ import org.opensaml.messaging.context.navigate.ChildContextLookup;
import org.opensaml.messaging.context.navigate.ContextDataLookupFunction;
import org.opensaml.profile.context.ProfileRequestContext;
import org.opensaml.profile.context.navigate.ParentProfileRequestContextLookup;
+import org.opensaml.security.config.SecurityConfiguration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -41,18 +42,17 @@ import com.nimbusds.jose.Algorithm;
import com.nimbusds.jose.JWSAlgorithm;
import com.nimbusds.oauth2.sdk.auth.ClientAuthenticationMethod;
-import net.shibboleth.idp.profile.config.ProfileConfiguration;
-import net.shibboleth.idp.profile.config.SecurityConfiguration;
-import net.shibboleth.idp.profile.context.RelyingPartyContext;
-import net.shibboleth.idp.relyingparty.RelyingPartyConfigurationResolver;
import net.shibboleth.oidc.profile.config.JSONSecurityConfiguration;
import net.shibboleth.oidc.profile.config.OIDCAuthenticationRelyingPartyProfileConfiguration;
import net.shibboleth.oidc.security.jose.SignatureSigningConfiguration;
import net.shibboleth.oidc.security.jose.impl.BasicSignatureSigningConfiguration;
-import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
-import net.shibboleth.utilities.java.support.annotation.constraint.NotLive;
-import net.shibboleth.utilities.java.support.annotation.constraint.Unmodifiable;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.profile.config.ProfileConfiguration;
+import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.profile.relyingparty.RelyingPartyConfigurationResolver;
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
+import net.shibboleth.shared.annotation.constraint.NotLive;
+import net.shibboleth.shared.annotation.constraint.Unmodifiable;
+import net.shibboleth.shared.logic.Constraint;
/**
* A function that returns a {@link SignatureSigningConfiguration} list for signing client authentication JWTs.
@@ -118,25 +118,21 @@ public class ClientAuthenticationConfigurationLookupFunction
if (rpc != null) {
final ProfileConfiguration pc = rpc.getProfileConfig();
- if (pc != null && pc.getSecurityConfiguration(PRC_LOOKUP.apply(input)) instanceof JSONSecurityConfiguration
- && ((JSONSecurityConfiguration) pc.getSecurityConfiguration(PRC_LOOKUP.apply(input)))
- .getJwtSignatureSigningConfiguration() != null) {
+ if (pc != null && pc.getSecurityConfiguration(PRC_LOOKUP.apply(input)) instanceof JSONSecurityConfiguration jsonSecConfig
+ && jsonSecConfig.getJwtSignatureSigningConfiguration() != null) {
configs.add(((JSONSecurityConfiguration) pc.getSecurityConfiguration(PRC_LOOKUP.apply(input)))
.getJwtSignatureSigningConfiguration());
}
- if (pc instanceof OIDCAuthenticationRelyingPartyProfileConfiguration) {
- tokenEndpointAuthMethod = ((OIDCAuthenticationRelyingPartyProfileConfiguration) pc)
- .getTokenEndpointAuthMethod(PRC_LOOKUP.apply(input));
- }
- }
-
- // Check for a per-profile default (relying party independent) config.
- if (input != null && rpResolver != null) {
- final SecurityConfiguration defaultConfig = rpResolver
- .getDefaultSecurityConfiguration(PRC_LOOKUP.apply(input).getProfileId());
- if (defaultConfig instanceof JSONSecurityConfiguration
- && ((JSONSecurityConfiguration) defaultConfig).getJwtSignatureSigningConfiguration() != null) {
- configs.add(((JSONSecurityConfiguration) defaultConfig).getJwtSignatureSigningConfiguration());
+ if (pc instanceof OIDCAuthenticationRelyingPartyProfileConfiguration oidcRpConfig) {
+ tokenEndpointAuthMethod = oidcRpConfig.getTokenEndpointAuthMethod(PRC_LOOKUP.apply(input));
+ }
+ // Check for a per-profile default (relying party independent) config.
+ if (rpc.getConfiguration() != null) {
+ final SecurityConfiguration defaultConfig = rpc.getConfiguration().getSecurityConfiguration(PRC_LOOKUP.apply(input));
+ if (defaultConfig instanceof JSONSecurityConfiguration jsonSecConfig
+ && jsonSecConfig.getJwtSignatureSigningConfiguration() != null) {
+ configs.add(jsonSecConfig.getJwtSignatureSigningConfiguration());
+ }
}
}
diff --git a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/security/impl/NonceValidationActivationCondition.java b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/security/impl/NonceValidationActivationCondition.java
index 6ca196b..18d4e5e 100644
--- a/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/security/impl/NonceValidationActivationCondition.java
+++ b/idp-oidc-rp-impl/src/main/java/net/shibboleth/idp/plugin/authn/oidc/rp/security/impl/NonceValidationActivationCondition.java
@@ -29,7 +29,7 @@ import org.opensaml.profile.context.ProfileRequestContext;
import com.nimbusds.jwt.JWTClaimsSet;
import net.shibboleth.oidc.profile.core.OIDCAuthenticationRequest;
-import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.shared.logic.Constraint;
/**
* Determines if nonce validation should occur. True iff a nonce is present in the authentication request,
diff --git a/idp-oidc-rp-impl/src/main/resources/META-INF/net.shibboleth.idp/postconfig.xml b/idp-oidc-rp-impl/src/main/resources/META-INF/net.shibboleth.idp/postconfig.xml
index 314efaf..96dc9e0 100644
--- a/idp-oidc-rp-impl/src/main/resources/META-INF/net.shibboleth.idp/postconfig.xml
+++ b/idp-oidc-rp-impl/src/main/resources/META-INF/net.shibboleth.idp/postconfig.xml
@@ -85,7 +85,7 @@
</bean>
<bean id="shibboleth.ChildLookup.ProviderMetadataFromProviderContext"
- class="net.shibboleth.idp.profile.context.navigate.SpringExpressionContextLookupFunction"
+ class="net.shibboleth.profile.context.navigate.SpringExpressionContextLookupFunction"
c:_0="#{ T(net.shibboleth.oidc.metadata.context.OIDCProviderMetadataContext) }"
c:outputType="#{T(com.nimbusds.openid.connect.sdk.op.OIDCProviderMetadata)}"
c:expression="#input.getProviderInformation()" />
@@ -296,7 +296,7 @@
c:resolverService-ref="shibboleth.authn.oidc.rp.ProviderMetadataResolverService" />
<bean id="shibboleth.authn.oidc.rp.ProviderMetadataResolverService"
- class="net.shibboleth.ext.spring.service.ReloadableSpringService"
+ class="net.shibboleth.shared.spring.service.ReloadableSpringService"
p:serviceConfigurations-ref="ExtendedProviderMetadataResolverResources"
p:failFast="%{idp.service.providermetadata.failFast:%{idp.service.failFast:false}}"
p:reloadCheckDelay="%{idp.service.providermetadata.checkInterval:PT0S}"
@@ -314,7 +314,7 @@
</util:list>
<!-- Auto-append system config file to resource set. -->
<bean id="ExtendedProviderMetadataResolverResources"
- class="net.shibboleth.ext.spring.factory.CombiningListFactoryBean"
+ class="net.shibboleth.shared.spring.factory.CombiningListFactoryBean"
p:firstList="#{getObject('%{idp.service.providermetadata.resources:shibboleth.ProviderMetadataResolverResources}'.trim()) ?:
getObject('shibboleth.DefaultProviderMetadataResolverResources')}">
<property name="secondList">
@@ -351,7 +351,7 @@
<key>
<util:constant static-field="net.shibboleth.oidc.profile.audit.AuditFields.PROXY_CLIENT_ID"/>
</key>
- <ref bean="shibboleth.ResponderIdLookup.Simple" />
+ <ref bean="shibboleth.IssuerLookup.Simple" />
</entry>
</map>
</property>
diff --git a/idp-oidc-rp-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/authn/OIDCRelyingParty/oidc-relying-party-authn-beans.xml b/idp-oidc-rp-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/authn/OIDCRelyingParty/oidc-relying-party-authn-beans.xml
index 5256fac..ace2305 100644
--- a/idp-oidc-rp-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/authn/OIDCRelyingParty/oidc-relying-party-authn-beans.xml
+++ b/idp-oidc-rp-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/authn/OIDCRelyingParty/oidc-relying-party-authn-beans.xml
@@ -8,7 +8,7 @@
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"
default-init-method="initialize" default-destroy-method="destroy">
-
+
<!-- Initial discovery step -->
<bean id="PropertyDrivenDiscovery" parent="shibboleth.Functions.Constant"
@@ -82,7 +82,7 @@
<bean id="SelectRelyingPartyConfiguration"
class="net.shibboleth.idp.profile.impl.SelectRelyingPartyConfiguration" scope="prototype"
p:profileContextLookupStrategy-ref="shibboleth.ChildLookup.ProxyProfileRequestContext"
- p:relyingPartyConfigurationResolver-ref="shibboleth.RelyingPartyConfigurationResolver" />
+ p:relyingPartyConfigurationResolver-ref="shibboleth.RelyingPartyResolverService" />
<bean id="SelectProfileConfiguration" class="net.shibboleth.idp.profile.impl.SelectProfileConfiguration"
scope="prototype" p:profileContextLookupStrategy-ref="shibboleth.ChildLookup.ProxyProfileRequestContext" />
@@ -178,8 +178,7 @@
class="net.shibboleth.idp.plugin.authn.oidc.rp.messaging.context.navigate.RequestObjectSupportedSignatureSigningAlgorithms" />
<bean id="RequestObjectSignatureSigningConfigurationLookup" lazy-init="true" scope="prototype"
- class="net.shibboleth.oidc.profile.config.navigate.JWTSignatureSigningConfigurationLookupFunction"
- p:relyingPartyConfigurationResolver-ref="shibboleth.RelyingPartyConfigurationResolver" />
+ class="net.shibboleth.oidc.profile.config.navigate.JWTSignatureSigningConfigurationLookupFunction" />
<!-- if the activation condition succeeds, encryption is not optional -->
<bean id="PopulateRequestObjectEncryptionParameters"
@@ -199,8 +198,7 @@
</bean>
<bean id="RequestObjectEncryptionConfigurationLookup" lazy-init="true" scope="prototype"
- class="net.shibboleth.oidc.profile.config.navigate.JWTEncryptionConfigurationLookupFunction"
- p:relyingPartyConfigurationResolver-ref="shibboleth.RelyingPartyConfigurationResolver" />
+ class="net.shibboleth.oidc.profile.config.navigate.JWTEncryptionConfigurationLookupFunction" />
<bean id="EncryptionParametersResolver" scope="prototype"
class="net.shibboleth.oidc.security.jose.impl.DefaultEncryptionParametersResolver">
@@ -442,8 +440,7 @@
class="net.shibboleth.oidc.security.jose.impl.DefaultDecryptionParametersResolver" />
<bean id="IDTokenDecryptionConfigurationLookup" lazy-init="true" scope="prototype"
- class="net.shibboleth.oidc.profile.config.navigate.JWTDecryptionConfigurationLookupFunction"
- p:relyingPartyConfigurationResolver-ref="shibboleth.RelyingPartyConfigurationResolver" />
+ class="net.shibboleth.oidc.profile.config.navigate.JWTDecryptionConfigurationLookupFunction"/>
<bean id="DecryptIDTokenJWE" class="net.shibboleth.oidc.security.impl.DecryptJWE" scope="prototype"
p:profileContextLookupStrategy-ref="shibboleth.ChildLookup.ProxyProfileRequestContext">
@@ -475,8 +472,7 @@
<property name="configurationLookupStrategy">
<bean class="net.shibboleth.oidc.profile.config.navigate.MessageContextLookupFunctionAdaptor">
<constructor-arg>
- <bean class="net.shibboleth.oidc.profile.config.navigate.JWTSignatureValidationConfigurationLookupFunction"
- p:relyingPartyConfigurationResolver-ref="shibboleth.RelyingPartyConfigurationResolver" />
+ <bean class="net.shibboleth.oidc.profile.config.navigate.JWTSignatureValidationConfigurationLookupFunction"/>
</constructor-arg>
</bean>
</property>
@@ -491,7 +487,7 @@
scope="prototype">
<property name="jwtTokenLookupStrategy">
<bean
- class="net.shibboleth.idp.profile.context.navigate.SpringExpressionContextLookupFunction"
+ class="net.shibboleth.profile.context.navigate.SpringExpressionContextLookupFunction"
c:_0="#{ T(org.opensaml.messaging.context.MessageContext) }"
c:outputType="#{T(com.nimbusds.jwt.SignedJWT)}"
c:expression="#input.getSubcontext(T(net.shibboleth.idp.plugin.authn.oidc.rp.context.AccessTokenResponseContext)).getTokenResponse().getOIDCTokens().getIDToken()" />
@@ -705,8 +701,7 @@
p:decryptionParametersResolver-ref="JWTDecryptionParametersResolver">
<property name="configurationLookupStrategy">
<bean id="UserInfoTokenDecryptionConfigurationLookup" scope="prototype"
- class="net.shibboleth.oidc.profile.config.navigate.JWTDecryptionConfigurationLookupFunction"
- p:relyingPartyConfigurationResolver-ref="shibboleth.RelyingPartyConfigurationResolver" />
+ class="net.shibboleth.oidc.profile.config.navigate.JWTDecryptionConfigurationLookupFunction"/>
</property>
</bean>
@@ -739,8 +734,7 @@
<property name="configurationLookupStrategy">
<bean class="net.shibboleth.oidc.profile.config.navigate.MessageContextLookupFunctionAdaptor">
<constructor-arg>
- <bean class="net.shibboleth.oidc.profile.config.navigate.JWTSignatureValidationConfigurationLookupFunction"
- p:relyingPartyConfigurationResolver-ref="shibboleth.RelyingPartyConfigurationResolver" />
+ <bean class="net.shibboleth.oidc.profile.config.navigate.JWTSignatureValidationConfigurationLookupFunction"/>
</constructor-arg>
</bean>
</property>
@@ -755,7 +749,7 @@
scope="prototype">
<property name="jwtTokenLookupStrategy">
<bean
- class="net.shibboleth.idp.profile.context.navigate.SpringExpressionContextLookupFunction"
+ class="net.shibboleth.profile.context.navigate.SpringExpressionContextLookupFunction"
c:_0="#{ T(org.opensaml.messaging.context.MessageContext) }"
c:outputType="#{T(com.nimbusds.jwt.SignedJWT)}"
c:expression="#input.getSubcontext(T(net.shibboleth.idp.plugin.authn.oidc.rp.context.UserInfoResponseContext)).getUserInfo().getUserInfoJWT()" />
@@ -855,7 +849,7 @@
p:authenticationContextLookupStrategy-ref="ParentAuthenticiationContextLookup"
p:addDefaultPrincipals="#{getObject('idp.authn.oidc.rp.supportedPrincipals.addDefaultPrincipals') ?: %{idp.authn.oidc.rp.addDefaultPrincipals:false}}"
p:responderLookupStrategy-ref="shibboleth.RelyingPartyIdLookup.Simple"
- p:requesterLookupStrategy-ref="shibboleth.ResponderIdLookup.Simple"
+ p:requesterLookupStrategy-ref="shibboleth.IssuerLookup.Simple"
p:cleanupHook="#{getObject('shibboleth.authn.oidc.rp.CleanUpHook')}"
p:contextToPrivateCredentialsMappingStrategy="#{getObject('shibboleth.authn.oidc.rp.ContextToPrivateCredentialsMappingStrategy')}"
p:attributeExtractionStrategy="#{getObject('shibboleth.authn.oidc.rp.AttributeExtractionStrategy')}"
@@ -867,7 +861,7 @@
p:availableFlows-ref="shibboleth.authn.oidc.rp.c14n.PostLoginSubjectCanonicalizationFlows" />
<bean id="shibboleth.authn.oidc.rp.c14n.PostLoginSubjectCanonicalizationFlows"
- class="net.shibboleth.ext.spring.factory.CombiningListFactoryBean"
+ class="net.shibboleth.shared.spring.factory.CombiningListFactoryBean"
p:firstList-ref="InbuiltPostLoginSubjectCanonicalizationFlows"
p:secondList-ref="shibboleth.PostLoginSubjectCanonicalizationFlows" />
diff --git a/idp-oidc-rp-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/rp/keyset/keyset-beans.xml b/idp-oidc-rp-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/rp/keyset/keyset-beans.xml
index 192db95..252fb8c 100644
--- a/idp-oidc-rp-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/rp/keyset/keyset-beans.xml
+++ b/idp-oidc-rp-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/rp/keyset/keyset-beans.xml
@@ -27,7 +27,7 @@
<bean id="SelectRelyingPartyConfiguration"
class="net.shibboleth.idp.profile.impl.SelectRelyingPartyConfiguration" scope="prototype"
- p:relyingPartyConfigurationResolver-ref="shibboleth.RelyingPartyConfigurationResolver" />
+ p:relyingPartyConfigurationResolver-ref="shibboleth.RelyingPartyResolverService" />
<bean id="SelectProfileConfiguration" class="net.shibboleth.idp.profile.impl.SelectProfileConfiguration"
scope="prototype" />
diff --git a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/decoding/impl/DefaultAccessTokenResponseDecoderTest.java b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/decoding/impl/DefaultAccessTokenResponseDecoderTest.java
index 5f537ae..0ff5b67 100644
--- a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/decoding/impl/DefaultAccessTokenResponseDecoderTest.java
+++ b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/decoding/impl/DefaultAccessTokenResponseDecoderTest.java
@@ -25,10 +25,9 @@ import static org.testng.Assert.assertTrue;
import java.io.IOException;
-import org.apache.http.HttpResponse;
-import org.apache.http.StatusLine;
-import org.apache.http.entity.ContentType;
-import org.apache.http.entity.StringEntity;
+import org.apache.hc.core5.http.ClassicHttpResponse;
+import org.apache.hc.core5.http.ContentType;
+import org.apache.hc.core5.http.io.entity.StringEntity;
import org.mockito.Mockito;
import org.springframework.http.MediaType;
import org.testng.annotations.BeforeMethod;
@@ -41,7 +40,7 @@ import com.nimbusds.oauth2.sdk.TokenResponse;
import com.nimbusds.openid.connect.sdk.OIDCTokenResponse;
import net.shibboleth.idp.plugin.authn.oidc.rp.impl.AbstractOIDCTest;
-import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
+import net.shibboleth.shared.component.ComponentInitializationException;
/** Tests for the DefaultAccessTokenResponseDecoder.*/
public class DefaultAccessTokenResponseDecoderTest extends AbstractOIDCTest {
@@ -61,12 +60,11 @@ public class DefaultAccessTokenResponseDecoderTest extends AbstractOIDCTest {
@Test
public void testEncoder_Success() throws ComponentInitializationException, UnsupportedOperationException, IOException {
decoder.initialize();
- final HttpResponse response = Mockito.mock(HttpResponse.class);
- final StatusLine mockStatusLine = Mockito.mock(StatusLine.class);
- when(mockStatusLine.getStatusCode()).thenReturn(200);
- when(response.getStatusLine()).thenReturn(mockStatusLine);
+
+ final ClassicHttpResponse response = Mockito.mock(ClassicHttpResponse.class);
Mockito.when(response.getEntity()).thenReturn(new StringEntity(ACCESS_TOKEN_RESPONSE,
- ContentType.parse(MediaType.APPLICATION_JSON_VALUE)));
+ ContentType.parse(MediaType.APPLICATION_JSON_VALUE)));
+ Mockito.when(response.getCode()).thenReturn(200);
final TokenResponse decodedResponse = decoder.apply(response);
assertNotNull(decodedResponse);
@@ -81,7 +79,7 @@ public class DefaultAccessTokenResponseDecoderTest extends AbstractOIDCTest {
@Test
public void testEncoder_NullResponseFields() throws ComponentInitializationException {
decoder.initialize();
- final HttpResponse response = Mockito.mock(HttpResponse.class);
+ final ClassicHttpResponse response = Mockito.mock(ClassicHttpResponse.class);
final TokenResponse decodedResponse = decoder.apply(response);
assertNull(decodedResponse);
@@ -90,13 +88,12 @@ public class DefaultAccessTokenResponseDecoderTest extends AbstractOIDCTest {
@Test
public void testEncoder_InternalServerErrorResponse() throws ComponentInitializationException {
decoder.initialize();
- final HttpResponse response = Mockito.mock(HttpResponse.class);
- final StatusLine mockStatusLine = Mockito.mock(StatusLine.class);
- when(mockStatusLine.getStatusCode()).thenReturn(500);
- when(response.getStatusLine()).thenReturn(mockStatusLine);
- Mockito.when(response.getEntity()).thenReturn(new StringEntity(TOKEN_RESPONSE_ERROR,
- ContentType.parse(MediaType.APPLICATION_JSON_VALUE)));
+ final ClassicHttpResponse response = Mockito.mock(ClassicHttpResponse.class);
+ Mockito.when(response.getEntity()).thenReturn(new StringEntity(TOKEN_RESPONSE_ERROR,
+ ContentType.parse(MediaType.APPLICATION_JSON_VALUE)));
+ Mockito.when(response.getCode()).thenReturn(500);
+
final TokenResponse decodedResponse = decoder.apply(response);
assertNotNull(decodedResponse);
@@ -108,10 +105,9 @@ public class DefaultAccessTokenResponseDecoderTest extends AbstractOIDCTest {
@Test
public void testEncoder_NoMessageEntity() throws ComponentInitializationException {
decoder.initialize();
- final HttpResponse response = Mockito.mock(HttpResponse.class);
- final StatusLine mockStatusLine = Mockito.mock(StatusLine.class);
- when(mockStatusLine.getStatusCode()).thenReturn(200);
- when(response.getStatusLine()).thenReturn(mockStatusLine);
+
+ final ClassicHttpResponse response = Mockito.mock(ClassicHttpResponse.class);
+ Mockito.when(response.getCode()).thenReturn(200);
when(response.getEntity()).thenReturn(null);
final TokenResponse decodedResponse = decoder.apply(response);
diff --git a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/decoding/impl/DefaultUserInfoResponseDecoderTest.java b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/decoding/impl/DefaultUserInfoResponseDecoderTest.java
index c4b0406..176e3b7 100644
--- a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/decoding/impl/DefaultUserInfoResponseDecoderTest.java
+++ b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/decoding/impl/DefaultUserInfoResponseDecoderTest.java
@@ -26,11 +26,12 @@ import static org.testng.Assert.assertTrue;
import java.io.ByteArrayInputStream;
-import org.apache.http.Header;
-import org.apache.http.HttpEntity;
-import org.apache.http.HttpResponse;
-import org.apache.http.StatusLine;
-import org.apache.http.message.BasicHeader;
+import org.apache.hc.core5.http.Header;
+import org.apache.hc.core5.http.ClassicHttpResponse;
+import org.apache.hc.core5.http.HttpEntity;
+import org.apache.hc.core5.http.ProtocolException;
+import org.apache.hc.core5.http.io.entity.StringEntity;
+import org.apache.hc.core5.http.message.BasicHeader;
import org.mockito.Mockito;
import org.springframework.http.MediaType;
import org.testng.annotations.BeforeMethod;
@@ -45,7 +46,7 @@ import com.nimbusds.openid.connect.sdk.UserInfoErrorResponse;
import com.nimbusds.openid.connect.sdk.UserInfoResponse;
import net.shibboleth.idp.plugin.authn.oidc.rp.impl.AbstractOIDCTest;
-import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
+import net.shibboleth.shared.component.ComponentInitializationException;
/** Tests for the {@link DefaultUserInfoResponseDecoder}.*/
public class DefaultUserInfoResponseDecoderTest extends AbstractOIDCTest {
@@ -62,23 +63,21 @@ public class DefaultUserInfoResponseDecoderTest extends AbstractOIDCTest {
}
@Test
- public void testEncoder_InternalServerErrorResponse() throws ComponentInitializationException {
+ public void testEncoder_InternalServerErrorResponse() throws ComponentInitializationException, ProtocolException {
decoder.initialize();
- final HttpResponse response = Mockito.mock(HttpResponse.class);
- final StatusLine mockStatusLine = Mockito.mock(StatusLine.class);
- when(mockStatusLine.getStatusCode()).thenReturn(500);
- when(response.getStatusLine()).thenReturn(mockStatusLine);
- when(response.getStatusLine()).thenReturn(mockStatusLine);
+
+ final ClassicHttpResponse response = Mockito.mock(ClassicHttpResponse.class);
+ Mockito.when(response.getCode()).thenReturn(500);
- final Header[] headers = new Header[1];
- headers[0] = new BasicHeader(
+ final Header header = new BasicHeader(
DefaultUserInfoResponseDecoder.USERINFO_ERROR_RESPONSE_HEADER,"Bearer realm=\"example\",\n"
+ " error=\"invalid_token\",\n"
+ " error_description=\"The access token expired\"");
- when(response.getHeaders(DefaultUserInfoResponseDecoder.USERINFO_ERROR_RESPONSE_HEADER))
- .thenReturn(headers);
+ when(response.getHeader(DefaultUserInfoResponseDecoder.USERINFO_ERROR_RESPONSE_HEADER))
+ .thenReturn(header);
final UserInfoResponse userInfoResponse = decoder.apply(response);
+ assertNotNull(userInfoResponse);
assertFalse(userInfoResponse.indicatesSuccess());
final ErrorObject errorMsg = ((UserInfoErrorResponse)userInfoResponse).getErrorObject();
assertNotNull(errorMsg);
@@ -87,10 +86,9 @@ public class DefaultUserInfoResponseDecoderTest extends AbstractOIDCTest {
@Test
public void testEncoder_NoMessageEntity() throws ComponentInitializationException {
decoder.initialize();
- final HttpResponse response = Mockito.mock(HttpResponse.class);
- final StatusLine mockStatusLine = Mockito.mock(StatusLine.class);
- when(mockStatusLine.getStatusCode()).thenReturn(200);
- when(response.getStatusLine()).thenReturn(mockStatusLine);
+
+ final ClassicHttpResponse response = Mockito.mock(ClassicHttpResponse.class);
+ Mockito.when(response.getCode()).thenReturn(200);
when(response.getEntity()).thenReturn(null);
final UserInfoResponse userInfoResponse = decoder.apply(response);
@@ -101,14 +99,11 @@ public class DefaultUserInfoResponseDecoderTest extends AbstractOIDCTest {
@Test
public void testEncoder_PlainResponse_Success() throws Exception {
decoder.initialize();
- final HttpResponse response = Mockito.mock(HttpResponse.class);
+ final ClassicHttpResponse response = Mockito.mock(ClassicHttpResponse.class);
+ Mockito.when(response.getCode()).thenReturn(200);
final HttpEntity mockHttpEntity = Mockito.mock(HttpEntity.class);
- final StatusLine mockStatusLine = Mockito.mock(StatusLine.class);
- when(mockStatusLine.getStatusCode()).thenReturn(200);
- when(response.getStatusLine()).thenReturn(mockStatusLine);
when(response.getEntity()).thenReturn(mockHttpEntity);
- when(mockHttpEntity.getContentType()).thenReturn(
- new BasicHeader("Content-Type",MediaType.APPLICATION_JSON_VALUE));
+ when(mockHttpEntity.getContentType()).thenReturn(MediaType.APPLICATION_JSON_VALUE);
when(mockHttpEntity.getContent()).thenReturn(new ByteArrayInputStream(USERINFO_RESPONSE.getBytes()));
final UserInfoResponse userInfoResponse = decoder.apply(response);
@@ -127,15 +122,13 @@ public class DefaultUserInfoResponseDecoderTest extends AbstractOIDCTest {
@Test
public void testEncoder_JWSResponse_PlainJSONContentType_Fail() throws Exception {
decoder.initialize();
- final HttpResponse response = Mockito.mock(HttpResponse.class);
+
final HttpEntity mockHttpEntity = Mockito.mock(HttpEntity.class);
- final StatusLine mockStatusLine = Mockito.mock(StatusLine.class);
- when(mockStatusLine.getStatusCode()).thenReturn(200);
- when(response.getStatusLine()).thenReturn(mockStatusLine);
+ final ClassicHttpResponse response = Mockito.mock(ClassicHttpResponse.class);
+ Mockito.when(response.getCode()).thenReturn(200);
when(response.getEntity()).thenReturn(mockHttpEntity);
// Set the WRONG content type here
- when(mockHttpEntity.getContentType()).thenReturn(
- new BasicHeader("Content-Type",MediaType.APPLICATION_JSON_VALUE));
+ when(mockHttpEntity.getContentType()).thenReturn(MediaType.APPLICATION_JSON_VALUE);
when(mockHttpEntity.getContent()).thenReturn(new ByteArrayInputStream(USERINFO_RESPONSE_JWS.getBytes()));
final UserInfoResponse userInfoResponse = decoder.apply(response);
@@ -145,15 +138,12 @@ public class DefaultUserInfoResponseDecoderTest extends AbstractOIDCTest {
@Test
public void testEncoder_PlainResponse_JWTContentType_Fail() throws Exception {
decoder.initialize();
- final HttpResponse response = Mockito.mock(HttpResponse.class);
+ final ClassicHttpResponse response = Mockito.mock(ClassicHttpResponse.class);
+ Mockito.when(response.getCode()).thenReturn(200);
final HttpEntity mockHttpEntity = Mockito.mock(HttpEntity.class);
- final StatusLine mockStatusLine = Mockito.mock(StatusLine.class);
- when(mockStatusLine.getStatusCode()).thenReturn(200);
- when(response.getStatusLine()).thenReturn(mockStatusLine);
when(response.getEntity()).thenReturn(mockHttpEntity);
// Set the WRONG content type here
- when(mockHttpEntity.getContentType()).thenReturn(
- new BasicHeader("Content-Type",ContentType.APPLICATION_JWT.getType()));
+ when(mockHttpEntity.getContentType()).thenReturn(ContentType.APPLICATION_JWT.getType());
when(mockHttpEntity.getContent()).thenReturn(new ByteArrayInputStream(USERINFO_RESPONSE.getBytes()));
final UserInfoResponse userInfoResponse = decoder.apply(response);
@@ -163,15 +153,12 @@ public class DefaultUserInfoResponseDecoderTest extends AbstractOIDCTest {
@Test
public void testEncoder_UnknownContentType() throws Exception {
decoder.initialize();
- final HttpResponse response = Mockito.mock(HttpResponse.class);
+ final ClassicHttpResponse response = Mockito.mock(ClassicHttpResponse.class);
+ Mockito.when(response.getCode()).thenReturn(200);
final HttpEntity mockHttpEntity = Mockito.mock(HttpEntity.class);
- final StatusLine mockStatusLine = Mockito.mock(StatusLine.class);
- when(mockStatusLine.getStatusCode()).thenReturn(200);
- when(response.getStatusLine()).thenReturn(mockStatusLine);
when(response.getEntity()).thenReturn(mockHttpEntity);
// Set the WRONG content type here
- when(mockHttpEntity.getContentType()).thenReturn(
- new BasicHeader("Content-Type","application/unknown"));
+ when(mockHttpEntity.getContentType()).thenReturn("application/unknown");
when(mockHttpEntity.getContent()).thenReturn(new ByteArrayInputStream(USERINFO_RESPONSE_JWS.getBytes()));
final UserInfoResponse userInfoResponse = decoder.apply(response);
@@ -181,14 +168,11 @@ public class DefaultUserInfoResponseDecoderTest extends AbstractOIDCTest {
@Test
public void testEncoder_JWSResponse_Success() throws Exception {
decoder.initialize();
- final HttpResponse response = Mockito.mock(HttpResponse.class);
- final HttpEntity mockHttpEntity = Mockito.mock(HttpEntity.class);
- final StatusLine mockStatusLine = Mockito.mock(StatusLine.class);
- when(mockStatusLine.getStatusCode()).thenReturn(200);
- when(response.getStatusLine()).thenReturn(mockStatusLine);
+ final ClassicHttpResponse response = Mockito.mock(ClassicHttpResponse.class);
+ Mockito.when(response.getCode()).thenReturn(200);
+ final HttpEntity mockHttpEntity = Mockito.mock(HttpEntity.class);
when(response.getEntity()).thenReturn(mockHttpEntity);
- when(mockHttpEntity.getContentType()).thenReturn(
- new BasicHeader("Content-Type",ContentType.APPLICATION_JWT.getType()));
+ when(mockHttpEntity.getContentType()).thenReturn(ContentType.APPLICATION_JWT.getType());
when(mockHttpEntity.getContent()).thenReturn(new ByteArrayInputStream(USERINFO_RESPONSE_JWS.getBytes()));
final UserInfoResponse userInfoResponse = decoder.apply(response);
@@ -206,19 +190,16 @@ public class DefaultUserInfoResponseDecoderTest extends AbstractOIDCTest {
@Test
public void testEncoder_ErrorResponse() throws Exception {
decoder.initialize();
- final HttpResponse response = Mockito.mock(HttpResponse.class);
+ final ClassicHttpResponse response = Mockito.mock(ClassicHttpResponse.class);
+ Mockito.when(response.getCode()).thenReturn(401);
final HttpEntity mockHttpEntity = Mockito.mock(HttpEntity.class);
- final StatusLine mockStatusLine = Mockito.mock(StatusLine.class);
- when(mockStatusLine.getStatusCode()).thenReturn(401);
- when(response.getStatusLine()).thenReturn(mockStatusLine);
when(response.getEntity()).thenReturn(mockHttpEntity);
- final Header[] headers = new Header[1];
- headers[0] = new BasicHeader(
+ final Header header = new BasicHeader(
DefaultUserInfoResponseDecoder.USERINFO_ERROR_RESPONSE_HEADER,"Bearer realm=\"example\",\n"
+ " error=\"invalid_token\",\n"
+ " error_description=\"The access token expired\"");
- when(response.getHeaders(DefaultUserInfoResponseDecoder.USERINFO_ERROR_RESPONSE_HEADER))
- .thenReturn(headers);
+ when(response.getHeader(DefaultUserInfoResponseDecoder.USERINFO_ERROR_RESPONSE_HEADER))
+ .thenReturn(header);
final UserInfoResponse userInfoResponse = decoder.apply(response);
@@ -229,14 +210,11 @@ public class DefaultUserInfoResponseDecoderTest extends AbstractOIDCTest {
@Test
public void testEncoder_JWEAndJWSResponse_Success() throws Exception {
decoder.initialize();
- final HttpResponse response = Mockito.mock(HttpResponse.class);
- final HttpEntity mockHttpEntity = Mockito.mock(HttpEntity.class);
- final StatusLine mockStatusLine = Mockito.mock(StatusLine.class);
- when(mockStatusLine.getStatusCode()).thenReturn(200);
- when(response.getStatusLine()).thenReturn(mockStatusLine);
+ final ClassicHttpResponse response = Mockito.mock(ClassicHttpResponse.class);
+ Mockito.when(response.getCode()).thenReturn(200);
+ final HttpEntity mockHttpEntity = Mockito.mock(HttpEntity.class);
when(response.getEntity()).thenReturn(mockHttpEntity);
- when(mockHttpEntity.getContentType()).thenReturn(
- new BasicHeader("Content-Type",ContentType.APPLICATION_JWT.getType()));
+ when(mockHttpEntity.getContentType()).thenReturn(ContentType.APPLICATION_JWT.getType());
when(mockHttpEntity.getContent()).thenReturn(new ByteArrayInputStream(USERINFO_RESPONSE_JWE.getBytes()));
final UserInfoResponse userInfoResponse = decoder.apply(response);
diff --git a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/encoding/impl/NimbusAuthCodeTokenRequestEncoderTest.java b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/encoding/impl/NimbusAuthCodeTokenRequestEncoderTest.java
index 7264872..49e2012 100644
--- a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/encoding/impl/NimbusAuthCodeTokenRequestEncoderTest.java
+++ b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/encoding/impl/NimbusAuthCodeTokenRequestEncoderTest.java
@@ -25,8 +25,7 @@ import java.net.URI;
import java.nio.charset.StandardCharsets;
import java.security.interfaces.RSAPrivateKey;
-import org.apache.http.HttpEntityEnclosingRequest;
-import org.apache.http.client.methods.HttpUriRequest;
+import org.apache.hc.core5.http.ClassicHttpRequest;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
@@ -67,13 +66,12 @@ public class NimbusAuthCodeTokenRequestEncoderTest extends AbstractOIDCTest {
peerEntityCtx.addSubcontext(clientAuthContext);
encoder.initialize();
- final HttpUriRequest request = encoder.apply(prc);
+ final ClassicHttpRequest request = encoder.apply(prc);
assertNotNull(request);
- assertTrue(request instanceof HttpEntityEnclosingRequest);
assertNotNull(request.getFirstHeader("Authorization"));
- assertNotNull(((HttpEntityEnclosingRequest)request).getEntity().getContent());
+ assertNotNull(request.getEntity().getContent());
final String content = new String(
- ((HttpEntityEnclosingRequest)request).getEntity().getContent().readAllBytes(), StandardCharsets.UTF_8);
+ (request.getEntity().getContent().readAllBytes()), StandardCharsets.UTF_8);
assertTrue("grant_type expected in request", content.contains("grant_type"));
assertTrue("authorization_code expected in request", content.contains("authorization_code"));
assertTrue("code expected in request", content.contains("code"));
@@ -89,13 +87,11 @@ public class NimbusAuthCodeTokenRequestEncoderTest extends AbstractOIDCTest {
peerEntityCtx.addSubcontext(clientAuthContext);
encoder.initialize();
- final HttpUriRequest request = encoder.apply(prc);
+ final ClassicHttpRequest request = encoder.apply(prc);
assertNotNull(request);
- assertTrue(request instanceof HttpEntityEnclosingRequest);
assertNull(request.getFirstHeader("Authorization"));
- assertNotNull(((HttpEntityEnclosingRequest)request).getEntity().getContent());
- final String content = new String(
- ((HttpEntityEnclosingRequest)request).getEntity().getContent().readAllBytes(), StandardCharsets.UTF_8);
+ assertNotNull(request.getEntity().getContent());
+ final String content = new String(request.getEntity().getContent().readAllBytes(), StandardCharsets.UTF_8);
assertTrue("grant_type expected in request", content.contains("grant_type"));
assertTrue("client_secret expected in request", content.contains("client_secret"));
assertTrue("client_id expected in request", content.contains("client_id"));
@@ -115,13 +111,12 @@ public class NimbusAuthCodeTokenRequestEncoderTest extends AbstractOIDCTest {
peerEntityCtx.addSubcontext(clientAuthContext);
encoder.initialize();
- final HttpUriRequest request = encoder.apply(prc);
+ final ClassicHttpRequest request = encoder.apply(prc);
assertNotNull(request);
- assertTrue(request instanceof HttpEntityEnclosingRequest);
assertNull(request.getFirstHeader("Authorization"));
- assertNotNull(((HttpEntityEnclosingRequest)request).getEntity().getContent());
+ assertNotNull(request.getEntity().getContent());
final String content = new String(
- ((HttpEntityEnclosingRequest)request).getEntity().getContent().readAllBytes(), StandardCharsets.UTF_8);
+ (request.getEntity().getContent().readAllBytes()), StandardCharsets.UTF_8);
assertTrue("grant_type expected in request", content.contains("grant_type"));
assertTrue("client_assertion_type expected in request", content.contains("client_assertion_type"));
assertTrue("client_assertion expected in request", content.contains("client_assertion"));
@@ -151,13 +146,12 @@ public class NimbusAuthCodeTokenRequestEncoderTest extends AbstractOIDCTest {
peerEntityCtx.addSubcontext(clientAuthContext);
encoder.initialize();
- final HttpUriRequest request = encoder.apply(prc);
+ final ClassicHttpRequest request = encoder.apply(prc);
assertNotNull(request);
- assertTrue(request instanceof HttpEntityEnclosingRequest);
assertNull(request.getFirstHeader("Authorization"));
- assertNotNull(((HttpEntityEnclosingRequest)request).getEntity().getContent());
+ assertNotNull(request.getEntity().getContent());
final String content = new String(
- ((HttpEntityEnclosingRequest)request).getEntity().getContent().readAllBytes(), StandardCharsets.UTF_8);
+ (request.getEntity().getContent().readAllBytes()), StandardCharsets.UTF_8);
assertTrue("grant_type expected in request", content.contains("grant_type"));
assertTrue("client_assertion_type expected in request", content.contains("client_assertion_type"));
assertTrue("client_assertion expected in request", content.contains("client_assertion"));
diff --git a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/AbstractOIDCTest.java b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/AbstractOIDCTest.java
index 07e1c12..95a615f 100644
--- a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/AbstractOIDCTest.java
+++ b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/AbstractOIDCTest.java
@@ -23,7 +23,7 @@ import java.util.Map;
import javax.annotation.Nonnull;
-import org.apache.http.HttpResponse;
+import org.apache.hc.core5.http.ClassicHttpResponse;
import org.opensaml.messaging.context.MessageContext;
import org.opensaml.profile.context.ProfileRequestContext;
import org.springframework.webflow.execution.RequestContext;
@@ -40,16 +40,16 @@ import net.minidev.json.parser.JSONParser;
import net.shibboleth.idp.authn.AuthenticationFlowDescriptor;
import net.shibboleth.idp.authn.context.AuthenticationContext;
import net.shibboleth.idp.authn.impl.DefaultAuthenticationResultSerializer;
-import net.shibboleth.idp.profile.context.RelyingPartyContext;
import net.shibboleth.idp.profile.context.navigate.WebflowRequestContextProfileRequestContextLookup;
import net.shibboleth.idp.profile.testing.RequestContextBuilder;
-import net.shibboleth.idp.relyingparty.RelyingPartyConfiguration;
import net.shibboleth.oidc.metadata.context.OIDCProviderMetadataContext;
import net.shibboleth.oidc.profile.config.impl.DefaultOIDCAuthorizationConfiguration;
import net.shibboleth.oidc.profile.core.OIDCAuthenticationRequest;
import net.shibboleth.oidc.profile.messaging.context.OIDCPeerEntityContext;
import net.shibboleth.oidc.security.impl.support.TestCredentialHelper;
-import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
+import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.profile.relyingparty.BasicRelyingPartyConfiguration;
+import net.shibboleth.shared.annotation.constraint.NotEmpty;
/** Abstract class for tests that require context setup appropriate for an OIDC request/response.*/
public abstract class AbstractOIDCTest {
@@ -288,12 +288,12 @@ public abstract class AbstractOIDCTest {
partyConfig.setTokenEndpointAuthMethod("client_secret_basic");
partyConfig.setClientId(CLIENT_ID);
partyConfig.setRedirectUriOverride(REDIRECT_URI_OVERRIDE);
- final RelyingPartyConfiguration rPartyConfig = new RelyingPartyConfiguration();
- rPartyConfig.setResponderId("http://idp.example.com/");
+ final BasicRelyingPartyConfiguration rPartyConfig = new BasicRelyingPartyConfiguration();
+ rPartyConfig.setIssuer("http://idp.example.com/");
partyContext.setConfiguration(rPartyConfig);
prc.addSubcontext(partyContext);
- peerEntityCtx = outMsgCtx.getSubcontext(OIDCPeerEntityContext.class,true);
+ peerEntityCtx = outMsgCtx.ensureSubcontext(OIDCPeerEntityContext.class);
providerCtx = new OIDCProviderMetadataContext();
providerCtx.setProviderInformation(
OIDCProviderMetadata.parse((JSONObject)parser.parse(GOOD_PROVIDER_CONFIGURATION_INFO)));
@@ -311,7 +311,7 @@ public abstract class AbstractOIDCTest {
}
- protected JSONObject convertHttpResponseToJSONObject(final HttpResponse response) throws Exception {
+ protected JSONObject convertHttpResponseToJSONObject(final ClassicHttpResponse response) throws Exception {
final ObjectMapper mapper = new ObjectMapper();
final Map<String, Object> tokenResponseAsMap = mapper.readValue(
response.getEntity().getContent(), new TypeReference<Map<String, Object>>() {});
diff --git a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/AuthorizationControllerTest.java b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/AuthorizationControllerTest.java
index 9b4957f..b9d6c92 100644
--- a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/AuthorizationControllerTest.java
+++ b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/AuthorizationControllerTest.java
@@ -35,12 +35,9 @@ import java.util.List;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.apache.http.NameValuePair;
-import org.apache.http.client.utils.URLEncodedUtils;
+import org.apache.hc.core5.http.NameValuePair;
+import org.apache.hc.core5.net.URLEncodedUtils;
import org.mockito.Mockito;
import org.opensaml.messaging.context.MessageContext;
import org.opensaml.messaging.decoder.MessageDecodingException;
@@ -80,6 +77,9 @@ import com.nimbusds.oauth2.sdk.id.ClientID;
import com.nimbusds.oauth2.sdk.id.Issuer;
import com.nimbusds.openid.connect.sdk.claims.ClaimsSet;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import net.shibboleth.idp.authn.AuthenticationFlowDescriptor;
import net.shibboleth.idp.authn.ExternalAuthentication;
import net.shibboleth.idp.authn.context.AuthenticationContext;
@@ -107,9 +107,10 @@ import net.shibboleth.oidc.security.impl.SignJWTHandler;
import net.shibboleth.oidc.security.impl.support.TestCredentialHelper;
import net.shibboleth.oidc.security.jose.SignatureSigningParameters;
import net.shibboleth.oidc.security.jose.context.SecurityParametersContext;
-import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-import net.shibboleth.utilities.java.support.net.HttpServletSupport;
-import net.shibboleth.utilities.java.support.net.URLBuilder;
+import net.shibboleth.shared.component.ComponentInitializationException;
+import net.shibboleth.shared.net.URLBuilder;
+import net.shibboleth.shared.primitive.NonnullSupplier;
+import net.shibboleth.shared.servlet.HttpServletSupport;
/** Integration tests, using other 'live' actions, for the AuthorizationController.*/
@ContextConfiguration(classes = {AuthorizationController.class, IdPPropertyConfigurer.class})
@@ -327,7 +328,8 @@ public class AuthorizationControllerTest extends AbstractTestNGSpringContextTest
final var encrypter = new EncryptJWTHandler();
encrypter.setPayloadToEncryptLookupStrategy(new PayloadFromRequestObjectLookupFunction());
encrypter.setJwtUpdateConsumer(new RequestObjectTokenUpdateStrategy());
- encrypter.initialize();
+ encrypter.initialize();
+ chainingMsgHandler.initialize();
handlers.add(addState);
handlers.add(buildRequestObjectJwt);
@@ -379,9 +381,10 @@ public class AuthorizationControllerTest extends AbstractTestNGSpringContextTest
ac.addSubcontext(ec);
final MockRedirectEncoder encoder = new MockRedirectEncoder();
- encoder.setHttpServletResponse(response);
+ encoder.setHttpServletResponseSupplier(NonnullSupplier.of(response));
final MockEncodeMessage encode = new MockEncodeMessage(encoder);
- encode.setHttpServletResponse(response);
+ encode.setHttpServletResponseSupplier(NonnullSupplier.of(response));
+ encode.initialize();
final OIDCAuthnContext oidcContext = new OIDCAuthnContext(encode,
decoder -> new NoOpMockRedirectResponseDecoder());
diff --git a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/BuildRequestObjectTest.java b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/BuildRequestObjectTest.java
index 19ee888..3d8c459 100644
--- a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/BuildRequestObjectTest.java
+++ b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/BuildRequestObjectTest.java
@@ -45,12 +45,13 @@ import com.nimbusds.openid.connect.sdk.claims.ClaimsSet;
import com.nimbusds.openid.connect.sdk.claims.ClaimsSetRequest;
import net.shibboleth.idp.authn.context.AuthenticationContext;
-import net.shibboleth.idp.profile.context.RelyingPartyContext;
import net.shibboleth.idp.profile.context.navigate.WebflowRequestContextProfileRequestContextLookup;
-import net.shibboleth.idp.relyingparty.RelyingPartyConfiguration;
import net.shibboleth.oidc.profile.config.impl.DefaultOIDCAuthorizationConfiguration;
import net.shibboleth.oidc.profile.core.OIDCAuthenticationRequest;
-import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
+import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.profile.relyingparty.BasicRelyingPartyConfiguration;
+import net.shibboleth.profile.relyingparty.RelyingPartyConfiguration;
+import net.shibboleth.shared.component.ComponentInitializationException;
/** Tests for the {@link BuildRequestObject} action.*/
public class BuildRequestObjectTest extends AbstractOIDCTest {
@@ -70,9 +71,9 @@ public class BuildRequestObjectTest extends AbstractOIDCTest {
super.setup();
action = new BuildRequestObject();
- rpc = prc.getSubcontext(RelyingPartyContext.class, true);
+ rpc = prc.ensureSubcontext(RelyingPartyContext.class);
oidcAuthzConfig = new DefaultOIDCAuthorizationConfiguration();
- final RelyingPartyConfiguration rpConfig = new RelyingPartyConfiguration();
+ final RelyingPartyConfiguration rpConfig = new BasicRelyingPartyConfiguration();
rpc.setProfileConfig(oidcAuthzConfig);
rpc.setConfiguration(rpConfig);
diff --git a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/DefaultClaimMergingStrategyTest.java b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/DefaultClaimMergingStrategyTest.java
index cddca0f..fcc93a2 100644
--- a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/DefaultClaimMergingStrategyTest.java
+++ b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/DefaultClaimMergingStrategyTest.java
@@ -31,7 +31,7 @@ import com.nimbusds.openid.connect.sdk.claims.ClaimsSet;
import net.minidev.json.JSONObject;
import net.minidev.json.parser.JSONParser;
import net.minidev.json.parser.ParseException;
-import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
+import net.shibboleth.shared.annotation.constraint.NotEmpty;
/** Test for the DefaultClaimMergingStrategy.*/
public class DefaultClaimMergingStrategyTest {
diff --git a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/DefaultRedirectUriCreationFunctionTest.java b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/DefaultRedirectUriCreationFunctionTest.java
index 133be01..e2a6e5e 100644
--- a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/DefaultRedirectUriCreationFunctionTest.java
+++ b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/DefaultRedirectUriCreationFunctionTest.java
@@ -59,8 +59,8 @@ public class DefaultRedirectUriCreationFunctionTest {
prc = new ProfileRequestContext();
prc.setOutboundMessageContext(new MessageContext());
final OIDCPeerEntityContext peerCtx =
- prc.getOutboundMessageContext().getSubcontext(OIDCPeerEntityContext.class, true);
- clientContext = peerCtx.getSubcontext(OAuth2ClientContext.class, true);
+ prc.getOutboundMessageContext().ensureSubcontext(OIDCPeerEntityContext.class);
+ clientContext = peerCtx.ensureSubcontext(OAuth2ClientContext.class);
}
diff --git a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ExchangeCodeForAccessTokenTest.java b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ExchangeCodeForAccessTokenTest.java
index 9db95bc..ac55c91 100644
--- a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ExchangeCodeForAccessTokenTest.java
+++ b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ExchangeCodeForAccessTokenTest.java
@@ -28,15 +28,15 @@ import java.net.URISyntaxException;
import javax.annotation.Nonnull;
-import org.apache.http.HttpResponse;
-import org.apache.http.StatusLine;
-import org.apache.http.client.HttpClient;
-import org.apache.http.client.methods.HttpUriRequest;
-import org.apache.http.client.methods.RequestBuilder;
-import org.apache.http.client.utils.URIBuilder;
-import org.apache.http.entity.ContentType;
-import org.apache.http.entity.StringEntity;
-import org.apache.http.protocol.HttpContext;
+import org.apache.hc.client5.http.classic.HttpClient;
+import org.apache.hc.client5.http.classic.methods.HttpUriRequest;
+import org.apache.hc.core5.http.ClassicHttpResponse;
+import org.apache.hc.core5.http.ContentType;
+import org.apache.hc.core5.http.HttpHost;
+import org.apache.hc.core5.http.io.entity.StringEntity;
+import org.apache.hc.core5.http.io.support.ClassicRequestBuilder;
+import org.apache.hc.core5.http.protocol.HttpContext;
+import org.apache.hc.core5.net.URIBuilder;
import org.mockito.Mockito;
import org.opensaml.messaging.context.navigate.ChildContextLookup;
import org.opensaml.messaging.context.navigate.ParentContextLookup;
@@ -88,12 +88,8 @@ public class ExchangeCodeForAccessTokenTest extends AbstractOIDCTest {
public void testTokenExchange() throws Exception {
final HttpClient httpClient = Mockito.mock(HttpClient.class);
- final HttpResponse httpResponse = Mockito.mock(HttpResponse.class);
- final StatusLine statusLine = Mockito.mock(StatusLine.class);
-
- Mockito.when(httpResponse.getStatusLine()).thenReturn(statusLine);
-
- Mockito.when(statusLine.getStatusCode()).thenReturn(200);
+ final ClassicHttpResponse httpResponse = Mockito.mock(ClassicHttpResponse.class);
+ Mockito.when(httpResponse.getCode()).thenReturn(200);
Mockito.when(httpResponse.getEntity()).thenReturn(
new StringEntity(ACCESS_TOKEN_RESPONSE, ContentType.parse(MediaType.APPLICATION_JSON_VALUE)));
Mockito.when(httpClient.execute((HttpUriRequest) Mockito.any(), (HttpContext) Mockito.any()))
@@ -114,7 +110,7 @@ public class ExchangeCodeForAccessTokenTest extends AbstractOIDCTest {
}
// Add headers and create request.
- final RequestBuilder rb = RequestBuilder.post().setUri(uri)
+ final ClassicRequestBuilder rb = ClassicRequestBuilder.post().setUri(uri)
.setHeader("Content-Type", ContentType.APPLICATION_FORM_URLENCODED.getMimeType())
.setCharset(StandardCharset.UTF_8);
return rb.build();
@@ -140,15 +136,11 @@ public class ExchangeCodeForAccessTokenTest extends AbstractOIDCTest {
public void testTokenExchange_WrongTokenType() throws Exception {
final HttpClient httpClient = Mockito.mock(HttpClient.class);
- final HttpResponse httpResponse = Mockito.mock(HttpResponse.class);
- final StatusLine statusLine = Mockito.mock(StatusLine.class);
-
- Mockito.when(httpResponse.getStatusLine()).thenReturn(statusLine);
-
- Mockito.when(statusLine.getStatusCode()).thenReturn(200);
+ final ClassicHttpResponse httpResponse = Mockito.mock(ClassicHttpResponse.class);
+ Mockito.when(httpResponse.getCode()).thenReturn(200);
Mockito.when(httpResponse.getEntity()).thenReturn(
new StringEntity(ACCESS_TOKEN_RESPONSE_NO_IDTOKEN, ContentType.parse(MediaType.APPLICATION_JSON_VALUE)));
- Mockito.when(httpClient.execute((HttpUriRequest) Mockito.any(), (HttpContext) Mockito.any()))
+ Mockito.when(httpClient.executeOpen((HttpHost)Mockito.any(), (HttpUriRequest) Mockito.any(), (HttpContext) Mockito.any()))
.thenReturn(httpResponse);
// create new client with mock response
@@ -166,7 +158,7 @@ public class ExchangeCodeForAccessTokenTest extends AbstractOIDCTest {
}
// Add headers and create request.
- final RequestBuilder rb = RequestBuilder.post().setUri(uri)
+ final ClassicRequestBuilder rb = ClassicRequestBuilder.post().setUri(uri)
.setHeader("Content-Type", ContentType.APPLICATION_FORM_URLENCODED.getMimeType())
.setCharset(StandardCharset.UTF_8);
return rb.build();
@@ -192,12 +184,8 @@ public class ExchangeCodeForAccessTokenTest extends AbstractOIDCTest {
public void testTokenExchange_ErrorResponse() throws Exception {
final HttpClient httpClient = Mockito.mock(HttpClient.class);
- final HttpResponse httpResponse = Mockito.mock(HttpResponse.class);
- final StatusLine statusLine = Mockito.mock(StatusLine.class);
-
- Mockito.when(httpResponse.getStatusLine()).thenReturn(statusLine);
-
- Mockito.when(statusLine.getStatusCode()).thenReturn(400);
+ final ClassicHttpResponse httpResponse = Mockito.mock(ClassicHttpResponse.class);
+ Mockito.when(httpResponse.getCode()).thenReturn(400);
Mockito.when(httpResponse.getEntity()).thenReturn(
new StringEntity(TOKEN_RESPONSE_ERROR, ContentType.parse(MediaType.APPLICATION_JSON_VALUE)));
Mockito.when(httpClient.execute((HttpUriRequest) Mockito.any(), (HttpContext) Mockito.any()))
@@ -218,7 +206,7 @@ public class ExchangeCodeForAccessTokenTest extends AbstractOIDCTest {
}
// Add headers and create request.
- final RequestBuilder rb = RequestBuilder.post().setUri(uri)
+ final ClassicRequestBuilder rb = ClassicRequestBuilder.post().setUri(uri)
.setHeader("Content-Type", ContentType.APPLICATION_FORM_URLENCODED.getMimeType())
.setCharset(StandardCharset.UTF_8);
return rb.build();
@@ -244,10 +232,8 @@ public class ExchangeCodeForAccessTokenTest extends AbstractOIDCTest {
public void testNullTokenResponse() throws Exception {
final HttpClient httpClient = Mockito.mock(HttpClient.class);
- final HttpResponse httpResponse = Mockito.mock(HttpResponse.class);
- final StatusLine statusLine = Mockito.mock(StatusLine.class);
- Mockito.when(httpResponse.getStatusLine()).thenReturn(statusLine);
- Mockito.when(statusLine.getStatusCode()).thenReturn(200);
+ final ClassicHttpResponse httpResponse = Mockito.mock(ClassicHttpResponse.class);
+ Mockito.when(httpResponse.getCode()).thenReturn(200);
// create new client with mock response
exchangeAction.setHttpClient(httpClient);
@@ -264,7 +250,7 @@ public class ExchangeCodeForAccessTokenTest extends AbstractOIDCTest {
}
// Add headers and create request.
- final RequestBuilder rb = RequestBuilder.post().setUri(uri)
+ final ClassicRequestBuilder rb = ClassicRequestBuilder.post().setUri(uri)
.setHeader("Content-Type", ContentType.APPLICATION_FORM_URLENCODED.getMimeType())
.setCharset(StandardCharset.UTF_8);
return rb.build();
diff --git a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/MockAsymmetricJOSEObjectCredentialResolver.java b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/MockAsymmetricJOSEObjectCredentialResolver.java
index 4075798..ee7ddc8 100644
--- a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/MockAsymmetricJOSEObjectCredentialResolver.java
+++ b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/MockAsymmetricJOSEObjectCredentialResolver.java
@@ -29,8 +29,8 @@ import com.nimbusds.jose.jwk.AsymmetricJWK;
import net.shibboleth.oidc.security.credential.BasicJWKCredential;
import net.shibboleth.oidc.security.credential.JOSEObjectCredentialResolver;
-import net.shibboleth.utilities.java.support.resolver.CriteriaSet;
-import net.shibboleth.utilities.java.support.resolver.ResolverException;
+import net.shibboleth.shared.resolver.CriteriaSet;
+import net.shibboleth.shared.resolver.ResolverException;
/** Mock credential resolvers which builds a credential from the given key.*/
public class MockAsymmetricJOSEObjectCredentialResolver implements JOSEObjectCredentialResolver {
diff --git a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/MockMatcher.java b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/MockMatcher.java
index 507500b..cab0364 100644
--- a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/MockMatcher.java
+++ b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/MockMatcher.java
@@ -27,9 +27,10 @@ import net.shibboleth.idp.attribute.IdPAttribute;
import net.shibboleth.idp.attribute.IdPAttributeValue;
import net.shibboleth.idp.attribute.filter.Matcher;
import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
-import net.shibboleth.utilities.java.support.component.AbstractIdentifiedInitializableComponent;
-import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
+import net.shibboleth.shared.component.AbstractIdentifiedInitializableComponent;
+import net.shibboleth.shared.logic.Constraint;
+import net.shibboleth.shared.primitive.StringSupport;
+
/** A simple, mock implementation of {@link Matcher}. */
@SuppressWarnings("javadoc")
diff --git a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/MockReloadableService.java b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/MockReloadableService.java
deleted file mode 100644
index be37c85..0000000
--- a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/MockReloadableService.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements. See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You 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.idp.plugin.authn.oidc.rp.impl;
-
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-
-import net.shibboleth.utilities.java.support.service.AbstractReloadableService;
-import net.shibboleth.utilities.java.support.service.ServiceableComponent;
-
-/**
- * Utility class for wrapping a serviceable component in a dummy reloadable service.
- *
- * @param <T> type of component
- */
-public class MockReloadableService<T> extends AbstractReloadableService<T> {
-
- @Nonnull private final ServiceableComponent<T> component;
-
- public MockReloadableService(@Nullable final ServiceableComponent<T> what) {
- component = what;
- }
-
- /** {@inheritDoc} */
- @Override
- @Nullable public ServiceableComponent<T> getServiceableComponent() {
- if (null == component) {
- return null;
- }
- component.pinComponent();
- return component;
- }
-
- /** {@inheritDoc} */
- @Override
- protected boolean shouldReload() {
- return false;
- }
-
-}
\ No newline at end of file
diff --git a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/MockSimpleStringTranscoder.java b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/MockSimpleStringTranscoder.java
index 304de39..eef4a73 100644
--- a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/MockSimpleStringTranscoder.java
+++ b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/MockSimpleStringTranscoder.java
@@ -33,7 +33,7 @@ import net.shibboleth.idp.attribute.IdPAttributeValue;
import net.shibboleth.idp.attribute.StringAttributeValue;
import net.shibboleth.idp.attribute.transcoding.TranscodingRule;
import net.shibboleth.oidc.attribute.transcoding.AbstractOIDCAttributeTranscoder;
-import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
+import net.shibboleth.shared.annotation.constraint.NotEmpty;
/**
* Sample transcoder for tests which only supports simple strings.
diff --git a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/OIDCRPFlowTest.java b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/OIDCRPFlowTest.java
index 4041162..a3e06ef 100644
--- a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/OIDCRPFlowTest.java
+++ b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/OIDCRPFlowTest.java
@@ -29,11 +29,15 @@ import java.util.Set;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
+import javax.net.ssl.SSLContext;
-import org.apache.http.conn.ssl.NoopHostnameVerifier;
-import org.apache.http.conn.ssl.TrustAllStrategy;
-import org.apache.http.impl.client.HttpClients;
-import org.apache.http.ssl.SSLContextBuilder;
+import org.apache.hc.client5.http.impl.classic.HttpClients;
+import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManagerBuilder;
+import org.apache.hc.client5.http.io.HttpClientConnectionManager;
+import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory;
+import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactoryBuilder;
+import org.apache.hc.client5.http.ssl.TrustAllStrategy;
+import org.apache.hc.core5.ssl.SSLContexts;
import org.opensaml.core.config.InitializationException;
import org.opensaml.core.metrics.impl.MetricRegistryInitializer;
import org.opensaml.messaging.context.MessageContext;
@@ -63,7 +67,6 @@ import com.nimbusds.openid.connect.sdk.Nonce;
import com.nimbusds.openid.connect.sdk.claims.ClaimsSet;
import com.nimbusds.openid.connect.sdk.op.OIDCProviderMetadata;
-import net.shibboleth.ext.spring.config.IdentifiableBeanPostProcessor;
import net.shibboleth.idp.authn.context.AuthenticationContext;
import net.shibboleth.idp.authn.context.ExternalAuthenticationContext;
import net.shibboleth.idp.authn.context.SubjectCanonicalizationContext;
@@ -75,8 +78,6 @@ import net.shibboleth.idp.plugin.authn.oidc.rp.context.UserInfoResponseContext;
import net.shibboleth.idp.plugin.authn.oidc.rp.principal.OIDCSubjectIdentifierPrincipal;
import net.shibboleth.idp.plugin.authn.test.flow.AbstractAuthnXmlFlowExecutionTests;
import net.shibboleth.idp.plugin.authn.test.flow.mock.MockFlowBuilder;
-import net.shibboleth.idp.profile.context.RelyingPartyContext;
-import net.shibboleth.idp.relyingparty.RelyingPartyConfiguration;
import net.shibboleth.idp.saml.authn.principal.AuthenticationMethodPrincipal;
import net.shibboleth.idp.saml.authn.principal.AuthnContextClassRefPrincipal;
import net.shibboleth.oidc.metadata.context.OIDCProviderMetadataContext;
@@ -90,8 +91,12 @@ import net.shibboleth.oidc.security.impl.ExplicitKeySignedJWTTrustEngine;
import net.shibboleth.oidc.security.impl.support.TestCredentialHelper;
import net.shibboleth.oidc.security.jose.impl.BasicDecryptionConfiguration;
import net.shibboleth.oidc.security.jose.impl.BasicSignatureValidationConfiguration;
-import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
-import net.shibboleth.utilities.java.support.annotation.constraint.Unmodifiable;
+import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.profile.relyingparty.BasicRelyingPartyConfiguration;
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
+import net.shibboleth.shared.annotation.constraint.Unmodifiable;
+import net.shibboleth.shared.spring.config.IdentifiableBeanPostProcessor;
+import net.shibboleth.shared.spring.service.ReloadableSpringService;
import okhttp3.mockwebserver.MockWebServer;
import okhttp3.tls.HandshakeCertificates;
import okhttp3.tls.HeldCertificate;
@@ -193,7 +198,7 @@ public class OIDCRPFlowTest extends AbstractAuthnXmlFlowExecutionTests {
Map.of(
"classpath:flow-test/flows/authn/authn-abstract-flow.xml","authn.abstract",
"classpath:flow-test/flows/authn/conditions/conditions-flow.xml","authn/conditions",
- "classpath:/conf/authn/authn-events-flow.xml","authn.events");
+ "classpath:/net/shibboleth/idp/module/conf/authn/authn-events-flow.xml","authn.events");
/** Constructor.*/
@@ -245,10 +250,19 @@ public class OIDCRPFlowTest extends AbstractAuthnXmlFlowExecutionTests {
try {
// Create a HttpClient which turns off hostname verification and trusts all certificates (for TESTS!)
- addBeanSingleton(builderContext, "shibboleth.InternalHttpClient",
- HttpClients.custom().setSSLContext(new SSLContextBuilder()
- .loadTrustMaterial(null, TrustAllStrategy.INSTANCE).build())
- .setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE).build());
+ final SSLContext sslcontext = SSLContexts.custom()
+ .loadTrustMaterial(null, new TrustAllStrategy())
+ .build();
+ final SSLConnectionSocketFactory sslSocketFactory = SSLConnectionSocketFactoryBuilder.create()
+ .setSslContext(sslcontext)
+ .build();
+ final HttpClientConnectionManager cm = PoolingHttpClientConnectionManagerBuilder.create()
+ .setSSLSocketFactory(sslSocketFactory)
+ .build();
+ addBeanSingleton(builderContext, "shibboleth.InternalHttpClient",HttpClients.custom()
+ .setConnectionManager(cm)
+ .evictExpiredConnections()
+ .build());
} catch (final Exception e) {
log.error("Could not mock HTTP response",e);
@@ -433,8 +447,8 @@ public class OIDCRPFlowTest extends AbstractAuthnXmlFlowExecutionTests {
partyConfig.setTokenEndpointAuthMethods(Set.of("client_secret_basic"));
partyConfig.setClientId(CLIENT_ID);
partyConfig.setRedirectUriOverride(REDIRECT_URI_OVERRIDE);
- final RelyingPartyConfiguration rPartyConfig = new RelyingPartyConfiguration();
- rPartyConfig.setResponderId("http://idp.example.com/");
+ final BasicRelyingPartyConfiguration rPartyConfig = new BasicRelyingPartyConfiguration();
+ rPartyConfig.setIssuer("http://idp.example.com/");
partyContext.setConfiguration(rPartyConfig);
nestPrc.addSubcontext(partyContext);
partyConfig.setSecurityConfiguration(createBasicSecurityConfigAndValidationParams());
diff --git a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ProcessEndUserClaimsTest.java b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ProcessEndUserClaimsTest.java
index db9a468..ae400a0 100644
--- a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ProcessEndUserClaimsTest.java
+++ b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ProcessEndUserClaimsTest.java
@@ -53,12 +53,13 @@ import net.shibboleth.idp.authn.context.AuthenticationContext;
import net.shibboleth.idp.plugin.authn.oidc.rp.context.AccessTokenResponseContext;
import net.shibboleth.idp.plugin.authn.oidc.rp.context.EndUserClaimsContext;
import net.shibboleth.idp.plugin.authn.oidc.rp.context.UserInfoResponseContext;
-import net.shibboleth.idp.profile.context.RelyingPartyContext;
import net.shibboleth.idp.profile.context.navigate.WebflowRequestContextProfileRequestContextLookup;
-import net.shibboleth.idp.relyingparty.RelyingPartyConfiguration;
import net.shibboleth.oidc.profile.config.impl.DefaultOIDCAuthorizationConfiguration;
import net.shibboleth.oidc.security.jwt.claims.impl.JWTClaims;
-import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
+import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.profile.relyingparty.BasicRelyingPartyConfiguration;
+import net.shibboleth.profile.relyingparty.RelyingPartyConfiguration;
+import net.shibboleth.shared.component.ComponentInitializationException;
/** Tests for {@link ProcessEndUserClaims}.*/
public class ProcessEndUserClaimsTest extends AbstractOIDCTest {
@@ -79,9 +80,9 @@ public class ProcessEndUserClaimsTest extends AbstractOIDCTest {
super.setup();
action = new ProcessEndUserClaims();
- rpc = prc.getSubcontext(RelyingPartyContext.class, true);
+ rpc = prc.ensureSubcontext(RelyingPartyContext.class);
oidcAuthzConfig = new DefaultOIDCAuthorizationConfiguration();
- final RelyingPartyConfiguration rpConfig = new RelyingPartyConfiguration();
+ final RelyingPartyConfiguration rpConfig = new BasicRelyingPartyConfiguration();
rpc.setProfileConfig(oidcAuthzConfig);
rpc.setConfiguration(rpConfig);
diff --git a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/SimpleOIDCSubjectIdentifierCanonicalizationTest.java b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/SimpleOIDCSubjectIdentifierCanonicalizationTest.java
index 31775ba..da812b5 100644
--- a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/SimpleOIDCSubjectIdentifierCanonicalizationTest.java
+++ b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/SimpleOIDCSubjectIdentifierCanonicalizationTest.java
@@ -36,7 +36,8 @@ import net.shibboleth.idp.authn.context.SubjectCanonicalizationContext;
import net.shibboleth.idp.plugin.authn.oidc.rp.principal.OIDCSubjectIdentifierPrincipal;
import net.shibboleth.idp.profile.context.navigate.WebflowRequestContextProfileRequestContextLookup;
import net.shibboleth.idp.profile.testing.ActionTestingSupport;
-import net.shibboleth.utilities.java.support.collection.Pair;
+import net.shibboleth.shared.collection.Pair;
+
/** Tests for {@link SimpleOIDCSubjectIdentifierCanonicalization}.*/
public class SimpleOIDCSubjectIdentifierCanonicalizationTest extends AbstractOIDCTest {
@@ -64,47 +65,47 @@ public class SimpleOIDCSubjectIdentifierCanonicalizationTest extends AbstractOID
@Test public void testNoPrincipal() {
final Subject subject = new Subject();
- prc.getSubcontext(SubjectCanonicalizationContext.class, true).setSubject(subject);
+ prc.ensureSubcontext(SubjectCanonicalizationContext.class).setSubject(subject);
final Event event = action.execute(src);
ActionTestingSupport.assertEvent(event, AuthnEventIds.INVALID_SUBJECT);
- Assert.assertNotNull(prc.getSubcontext(SubjectCanonicalizationContext.class, false).getException());
+ Assert.assertNotNull(prc.getSubcontext(SubjectCanonicalizationContext.class).getException());
}
@Test public void testMultiPrincipals() {
final Subject subject = new Subject();
subject.getPrincipals().add(new OIDCSubjectIdentifierPrincipal("foo"));
subject.getPrincipals().add(new OIDCSubjectIdentifierPrincipal("bar"));
- prc.getSubcontext(SubjectCanonicalizationContext.class, true).setSubject(subject);
+ prc.ensureSubcontext(SubjectCanonicalizationContext.class).setSubject(subject);
final Event event = action.execute(src);
ActionTestingSupport.assertEvent(event, AuthnEventIds.INVALID_SUBJECT);
- Assert.assertNotNull(prc.getSubcontext(SubjectCanonicalizationContext.class, false).getException());
+ Assert.assertNotNull(prc.getSubcontext(SubjectCanonicalizationContext.class).getException());
}
@Test public void testSuccess() {
final Subject subject = new Subject();
subject.getPrincipals().add(new OIDCSubjectIdentifierPrincipal("foo"));
- prc.getSubcontext(SubjectCanonicalizationContext.class, true).setSubject(subject);
+ prc.ensureSubcontext(SubjectCanonicalizationContext.class).setSubject(subject);
final Event event = action.execute(src);
ActionTestingSupport.assertProceedEvent(event);
- final SubjectCanonicalizationContext sc = prc.getSubcontext(SubjectCanonicalizationContext.class, false);
+ final SubjectCanonicalizationContext sc = prc.getSubcontext(SubjectCanonicalizationContext.class);
Assert.assertEquals(sc.getPrincipalName(), "foo");
}
@Test public void testTransform() {
final Subject subject = new Subject();
subject.getPrincipals().add(new OIDCSubjectIdentifierPrincipal("foo at osu.edu"));
- prc.getSubcontext(SubjectCanonicalizationContext.class, true).setSubject(subject);
+ prc.ensureSubcontext(SubjectCanonicalizationContext.class).setSubject(subject);
final Event event = action.execute(src);
ActionTestingSupport.assertProceedEvent(event);
- final SubjectCanonicalizationContext sc = prc.getSubcontext(SubjectCanonicalizationContext.class, false);
+ final SubjectCanonicalizationContext sc = prc.getSubcontext(SubjectCanonicalizationContext.class);
Assert.assertEquals(sc.getPrincipalName(), "foo");
}
diff --git a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/UserInfoEndpointLookupTest.java b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/UserInfoEndpointLookupTest.java
index ce81ceb..106de22 100644
--- a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/UserInfoEndpointLookupTest.java
+++ b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/UserInfoEndpointLookupTest.java
@@ -28,14 +28,16 @@ import java.net.URISyntaxException;
import javax.annotation.Nonnull;
-import org.apache.http.HttpResponse;
-import org.apache.http.StatusLine;
-import org.apache.http.client.HttpClient;
-import org.apache.http.client.methods.HttpUriRequest;
-import org.apache.http.client.methods.RequestBuilder;
-import org.apache.http.client.utils.URIBuilder;
-import org.apache.http.entity.StringEntity;
-import org.apache.http.protocol.HttpContext;
+import org.apache.hc.client5.http.classic.HttpClient;
+import org.apache.hc.client5.http.classic.methods.HttpUriRequest;
+import org.apache.hc.core5.http.ClassicHttpResponse;
+import org.apache.hc.core5.http.HttpHost;
+import org.apache.hc.core5.http.HttpResponse;
+import org.apache.hc.core5.http.io.entity.StringEntity;
+import org.apache.hc.core5.http.io.support.ClassicRequestBuilder;
+import org.apache.hc.core5.http.message.StatusLine;
+import org.apache.hc.core5.http.protocol.HttpContext;
+import org.apache.hc.core5.net.URIBuilder;
import org.mockito.Mockito;
import org.opensaml.messaging.context.navigate.ChildContextLookup;
import org.opensaml.messaging.context.navigate.ParentContextLookup;
@@ -88,14 +90,10 @@ public class UserInfoEndpointLookupTest extends AbstractOIDCTest {
public void testLookupSuccess() throws Exception {
final HttpClient httpClient = Mockito.mock(HttpClient.class);
- final HttpResponse httpResponse = Mockito.mock(HttpResponse.class);
- final StatusLine statusLine = Mockito.mock(StatusLine.class);
-
- Mockito.when(httpResponse.getStatusLine()).thenReturn(statusLine);
-
- Mockito.when(statusLine.getStatusCode()).thenReturn(200);
+ final ClassicHttpResponse httpResponse = Mockito.mock(ClassicHttpResponse.class);
+ Mockito.when(httpResponse.getCode()).thenReturn(200);
Mockito.when(httpResponse.getEntity()).thenReturn(new StringEntity(USERINFO_RESPONSE));
- Mockito.when(httpClient.execute((HttpUriRequest) Mockito.any(), (HttpContext) Mockito.any()))
+ Mockito.when(httpClient.executeOpen((HttpHost) Mockito.any(), (HttpUriRequest) Mockito.any(), (HttpContext) Mockito.any()))
.thenReturn(httpResponse);
// create new client with mock response
@@ -113,7 +111,7 @@ public class UserInfoEndpointLookupTest extends AbstractOIDCTest {
}
// Add headers and create request.
- final RequestBuilder rb = RequestBuilder.post().setUri(uri)
+ final ClassicRequestBuilder rb = ClassicRequestBuilder.post().setUri(uri)
.setHeader("Content-Type", ContentType.APPLICATION_URLENCODED.getType())
.setCharset(StandardCharset.UTF_8);
return rb.build();
@@ -146,15 +144,11 @@ public class UserInfoEndpointLookupTest extends AbstractOIDCTest {
public void testUserInfoLookup_ErrorResponse() throws Exception {
final HttpClient httpClient = Mockito.mock(HttpClient.class);
- final HttpResponse httpResponse = Mockito.mock(HttpResponse.class);
- final StatusLine statusLine = Mockito.mock(StatusLine.class);
-
- Mockito.when(httpResponse.getStatusLine()).thenReturn(statusLine);
-
- Mockito.when(statusLine.getStatusCode()).thenReturn(401);
+ final ClassicHttpResponse httpResponse = Mockito.mock(ClassicHttpResponse.class);
+ Mockito.when(httpResponse.getCode()).thenReturn(401);
Mockito.when(httpResponse.getEntity()).thenReturn(new StringEntity(TOKEN_RESPONSE_ERROR));
- Mockito.when(httpClient.execute((HttpUriRequest) Mockito.any(), (HttpContext) Mockito.any()))
- .thenReturn(httpResponse);
+ Mockito.when(httpClient.executeOpen((HttpHost) Mockito.any(),(HttpUriRequest) Mockito.any(),
+ (HttpContext) Mockito.any())).thenReturn(httpResponse);
// create new client with mock response
action.setHttpClient(httpClient);
@@ -171,7 +165,7 @@ public class UserInfoEndpointLookupTest extends AbstractOIDCTest {
}
// Add headers and create request.
- final RequestBuilder rb = RequestBuilder.post().setUri(uri)
+ final ClassicRequestBuilder rb = ClassicRequestBuilder.post().setUri(uri)
.setHeader("Content-Type", ContentType.APPLICATION_URLENCODED.getType())
.setCharset(StandardCharset.UTF_8);
return rb.build();
@@ -199,10 +193,8 @@ public class UserInfoEndpointLookupTest extends AbstractOIDCTest {
public void testNullUserInfoResponse() throws Exception {
final HttpClient httpClient = Mockito.mock(HttpClient.class);
- final HttpResponse httpResponse = Mockito.mock(HttpResponse.class);
- final StatusLine statusLine = Mockito.mock(StatusLine.class);
- Mockito.when(httpResponse.getStatusLine()).thenReturn(statusLine);
- Mockito.when(statusLine.getStatusCode()).thenReturn(200);
+ final ClassicHttpResponse httpResponse = Mockito.mock(ClassicHttpResponse.class);
+ Mockito.when(httpResponse.getCode()).thenReturn(200);
// create new client with mock response
action.setHttpClient(httpClient);
@@ -220,7 +212,7 @@ public class UserInfoEndpointLookupTest extends AbstractOIDCTest {
}
// Add headers and create request.
- final RequestBuilder rb = RequestBuilder.post().setUri(uri)
+ final ClassicRequestBuilder rb = ClassicRequestBuilder.post().setUri(uri)
.setHeader("Content-Type", ContentType.APPLICATION_URLENCODED.getType())
.setCharset(StandardCharset.UTF_8);
return rb.build();
diff --git a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ValidateOAuthAccessTokenResponseTest.java b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ValidateOAuthAccessTokenResponseTest.java
index 173399a..778c1b2 100644
--- a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ValidateOAuthAccessTokenResponseTest.java
+++ b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ValidateOAuthAccessTokenResponseTest.java
@@ -24,10 +24,9 @@ import static org.testng.Assert.assertNull;
import java.time.Duration;
import java.time.Instant;
-import org.apache.http.HttpResponse;
-import org.apache.http.StatusLine;
-import org.apache.http.entity.ContentType;
-import org.apache.http.entity.StringEntity;
+import org.apache.hc.core5.http.ClassicHttpResponse;
+import org.apache.hc.core5.http.ContentType;
+import org.apache.hc.core5.http.io.entity.StringEntity;
import org.mockito.Mockito;
import org.opensaml.messaging.context.navigate.ChildContextLookup;
import org.opensaml.messaging.context.navigate.ParentContextLookup;
@@ -57,7 +56,7 @@ public class ValidateOAuthAccessTokenResponseTest extends AbstractOIDCTest {
/** The action to test.*/
private ValidateOAuthAccessTokenResponse action;
- private HttpResponse httpResponse;
+ private ClassicHttpResponse httpResponse;
private AccessTokenResponseContext atrc;
@@ -80,10 +79,8 @@ public class ValidateOAuthAccessTokenResponseTest extends AbstractOIDCTest {
action.setAuthenticationContextLookupStrategy(new ParentContextLookup<>(AuthenticationContext.class));
- httpResponse = Mockito.mock(HttpResponse.class);
- final StatusLine statusLine = Mockito.mock(StatusLine.class);
- Mockito.when(httpResponse.getStatusLine()).thenReturn(statusLine);
- Mockito.when(statusLine.getStatusCode()).thenReturn(200);
+ httpResponse = Mockito.mock(ClassicHttpResponse.class);
+ Mockito.when(httpResponse.getCode()).thenReturn(200);
Mockito.when(httpResponse.getEntity()).thenReturn(new StringEntity(ACCESS_TOKEN_RESPONSE,
ContentType.parse(MediaType.APPLICATION_JSON_VALUE)));
diff --git a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ValidateOIDCAuthenticationTest.java b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ValidateOIDCAuthenticationTest.java
index 998cf97..5112e07 100644
--- a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ValidateOIDCAuthenticationTest.java
+++ b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ValidateOIDCAuthenticationTest.java
@@ -57,12 +57,13 @@ import net.shibboleth.idp.authn.context.AuthenticationContext;
import net.shibboleth.idp.authn.principal.IdPAttributePrincipal;
import net.shibboleth.idp.plugin.authn.oidc.rp.context.EndUserClaimsContext;
import net.shibboleth.idp.plugin.authn.oidc.rp.principal.OIDCSubjectIdentifierPrincipal;
-import net.shibboleth.idp.plugin.authn.test.spring.MockApplicationContext;
import net.shibboleth.idp.profile.context.navigate.WebflowRequestContextProfileRequestContextLookup;
import net.shibboleth.idp.saml.authn.principal.AuthenticationMethodPrincipal;
import net.shibboleth.idp.saml.authn.principal.AuthnContextClassRefPrincipal;
import net.shibboleth.oidc.attribute.transcoding.OIDCAttributeTranscoder;
-import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
+import net.shibboleth.shared.component.ComponentInitializationException;
+import net.shibboleth.shared.testing.MockApplicationContext;
+import net.shibboleth.shared.testing.MockReloadableService;
/** Tests for the ValidateOIDCAuthentication.*/
public class ValidateOIDCAuthenticationTest extends AbstractOIDCTest {
@@ -103,9 +104,8 @@ public class ValidateOIDCAuthenticationTest extends AbstractOIDCTest {
registry.setTranscoderRegistry(List.of(
new TranscodingRule(ruleset1)));
- registry.setApplicationContext(new MockApplicationContext());
+ registry.setApplicationContext(new MockApplicationContext());
registry.initialize();
-
assertEquals(registry.getDisplayNames(new IdPAttribute("givenName")).size(), 1);
action.setTranscoderRegistry(new MockReloadableService<>(registry));
@@ -129,7 +129,6 @@ public class ValidateOIDCAuthenticationTest extends AbstractOIDCTest {
policy.initialize();
final AttributeFilterImpl filter = new AttributeFilterImpl("engine", Collections.singletonList(policy));
- filter.setApplicationContext(new MockApplicationContext());
filter.initialize();
action.setAttributeFilter(new MockReloadableService<>(filter));
}
diff --git a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ValidateResponseStateTest.java b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ValidateResponseStateTest.java
index fe1380c..b438637 100644
--- a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ValidateResponseStateTest.java
+++ b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/impl/ValidateResponseStateTest.java
@@ -35,11 +35,12 @@ import com.nimbusds.openid.connect.sdk.AuthenticationResponseParser;
import net.shibboleth.idp.authn.AuthnEventIds;
import net.shibboleth.idp.authn.context.AuthenticationContext;
-import net.shibboleth.idp.profile.context.RelyingPartyContext;
import net.shibboleth.idp.profile.context.navigate.WebflowRequestContextProfileRequestContextLookup;
-import net.shibboleth.idp.relyingparty.RelyingPartyConfiguration;
import net.shibboleth.oidc.profile.config.impl.DefaultOIDCAuthorizationConfiguration;
-import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
+import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.profile.relyingparty.BasicRelyingPartyConfiguration;
+import net.shibboleth.profile.relyingparty.RelyingPartyConfiguration;
+import net.shibboleth.shared.component.ComponentInitializationException;
/** Tests for {@link ValidateResponseState}.*/
public class ValidateResponseStateTest extends AbstractOIDCTest {
@@ -59,9 +60,9 @@ public class ValidateResponseStateTest extends AbstractOIDCTest {
super.setup();
action = new ValidateResponseState();
- rpc = prc.getSubcontext(RelyingPartyContext.class, true);
+ rpc = prc.ensureSubcontext(RelyingPartyContext.class);
oidcAuthzConfig = new DefaultOIDCAuthorizationConfiguration();
- final RelyingPartyConfiguration rpConfig = new RelyingPartyConfiguration();
+ final RelyingPartyConfiguration rpConfig = new BasicRelyingPartyConfiguration();
rpc.setProfileConfig(oidcAuthzConfig);
rpc.setConfiguration(rpConfig);
diff --git a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddAuthenticationContextClassReferencesHandlerTest.java b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddAuthenticationContextClassReferencesHandlerTest.java
index ce75e72..131a273 100644
--- a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddAuthenticationContextClassReferencesHandlerTest.java
+++ b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddAuthenticationContextClassReferencesHandlerTest.java
@@ -26,10 +26,11 @@ import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import net.shibboleth.idp.plugin.authn.oidc.rp.impl.AbstractOIDCTest;
-import net.shibboleth.idp.profile.context.RelyingPartyContext;
-import net.shibboleth.idp.relyingparty.RelyingPartyConfiguration;
import net.shibboleth.oidc.authn.principal.AuthenticationContextClassReferencePrincipal;
import net.shibboleth.oidc.profile.config.impl.DefaultOIDCAuthorizationConfiguration;
+import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.profile.relyingparty.BasicRelyingPartyConfiguration;
+import net.shibboleth.profile.relyingparty.RelyingPartyConfiguration;
/** Tests for AddAuthenticationContextClassReferences.*/
public class AddAuthenticationContextClassReferencesHandlerTest extends AbstractOIDCTest {
@@ -49,9 +50,9 @@ public class AddAuthenticationContextClassReferencesHandlerTest extends Abstrac
super.setup();
handler = new AddAuthenticationContextClassReferencesHandler();
- rpc = prc.getSubcontext(RelyingPartyContext.class, true);
+ rpc = prc.ensureSubcontext(RelyingPartyContext.class);
oidcAuthzConfig = new DefaultOIDCAuthorizationConfiguration();
- final RelyingPartyConfiguration rpConfig = new RelyingPartyConfiguration();
+ final RelyingPartyConfiguration rpConfig = new BasicRelyingPartyConfiguration();
rpc.setProfileConfig(oidcAuthzConfig);
rpc.setConfiguration(rpConfig);
diff --git a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddEndpointURIHandlerTest.java b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddEndpointURIHandlerTest.java
index 56568ca..b03a88e 100644
--- a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddEndpointURIHandlerTest.java
+++ b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddEndpointURIHandlerTest.java
@@ -24,9 +24,10 @@ import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import net.shibboleth.idp.plugin.authn.oidc.rp.impl.AbstractOIDCTest;
-import net.shibboleth.idp.profile.context.RelyingPartyContext;
-import net.shibboleth.idp.relyingparty.RelyingPartyConfiguration;
import net.shibboleth.oidc.profile.config.impl.DefaultOIDCAuthorizationConfiguration;
+import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.profile.relyingparty.BasicRelyingPartyConfiguration;
+import net.shibboleth.profile.relyingparty.RelyingPartyConfiguration;
/** Tests for {@link AddEndpointURIHandler}.*/
public class AddEndpointURIHandlerTest extends AbstractOIDCTest {
@@ -46,9 +47,9 @@ public class AddEndpointURIHandlerTest extends AbstractOIDCTest {
super.setup();
handler = new AddEndpointURIHandler();
- rpc = prc.getSubcontext(RelyingPartyContext.class, true);
+ rpc = prc.ensureSubcontext(RelyingPartyContext.class);
oidcAuthzConfig = new DefaultOIDCAuthorizationConfiguration();
- final RelyingPartyConfiguration rpConfig = new RelyingPartyConfiguration();
+ final RelyingPartyConfiguration rpConfig = new BasicRelyingPartyConfiguration();
rpc.setProfileConfig(oidcAuthzConfig);
rpc.setConfiguration(rpConfig);
diff --git a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddForceAuthenticationPromptHandlerTest.java b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddForceAuthenticationPromptHandlerTest.java
index cdec7af..fb686f0 100644
--- a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddForceAuthenticationPromptHandlerTest.java
+++ b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddForceAuthenticationPromptHandlerTest.java
@@ -26,9 +26,10 @@ import org.testng.annotations.Test;
import com.nimbusds.openid.connect.sdk.Prompt;
import net.shibboleth.idp.plugin.authn.oidc.rp.impl.AbstractOIDCTest;
-import net.shibboleth.idp.profile.context.RelyingPartyContext;
-import net.shibboleth.idp.relyingparty.RelyingPartyConfiguration;
import net.shibboleth.oidc.profile.config.impl.DefaultOIDCAuthorizationConfiguration;
+import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.profile.relyingparty.BasicRelyingPartyConfiguration;
+import net.shibboleth.profile.relyingparty.RelyingPartyConfiguration;
/** Tests for {@link AddForceAuthenticationHandler}.*/
public class AddForceAuthenticationPromptHandlerTest extends AbstractOIDCTest {
@@ -48,9 +49,9 @@ public class AddForceAuthenticationPromptHandlerTest extends AbstractOIDCTest {
super.setup();
handler = new AddForceAuthenticationHandler();
- rpc = prc.getSubcontext(RelyingPartyContext.class, true);
+ rpc = prc.ensureSubcontext(RelyingPartyContext.class);
oidcAuthzConfig = new DefaultOIDCAuthorizationConfiguration();
- final RelyingPartyConfiguration rpConfig = new RelyingPartyConfiguration();
+ final RelyingPartyConfiguration rpConfig = new BasicRelyingPartyConfiguration();
rpc.setProfileConfig(oidcAuthzConfig);
}
diff --git a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddPassiveAuthenticationHandlerTest.java b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddPassiveAuthenticationHandlerTest.java
index 1ffac74..a5bebbd 100644
--- a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddPassiveAuthenticationHandlerTest.java
+++ b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddPassiveAuthenticationHandlerTest.java
@@ -26,8 +26,8 @@ import org.testng.annotations.Test;
import com.nimbusds.openid.connect.sdk.Prompt;
import net.shibboleth.idp.plugin.authn.oidc.rp.impl.AbstractOIDCTest;
-import net.shibboleth.idp.profile.context.RelyingPartyContext;
import net.shibboleth.oidc.profile.config.impl.DefaultOIDCAuthorizationConfiguration;
+import net.shibboleth.profile.context.RelyingPartyContext;
/** Tests for {@link AddPassiveAuthenticationHandlerTest}.*/
public class AddPassiveAuthenticationHandlerTest extends AbstractOIDCTest {
@@ -47,7 +47,7 @@ public class AddPassiveAuthenticationHandlerTest extends AbstractOIDCTest {
super.setup();
handler = new AddPassiveAuthenticationHandler();
- rpc = prc.getSubcontext(RelyingPartyContext.class, true);
+ rpc = prc.ensureSubcontext(RelyingPartyContext.class);
oidcAuthzConfig = new DefaultOIDCAuthorizationConfiguration();
rpc.setProfileConfig(oidcAuthzConfig);
diff --git a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddRedirectURIHandlerTest.java b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddRedirectURIHandlerTest.java
index d32822c..69b9a72 100644
--- a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddRedirectURIHandlerTest.java
+++ b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddRedirectURIHandlerTest.java
@@ -26,9 +26,10 @@ import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import net.shibboleth.idp.plugin.authn.oidc.rp.impl.AbstractOIDCTest;
-import net.shibboleth.idp.profile.context.RelyingPartyContext;
-import net.shibboleth.idp.relyingparty.RelyingPartyConfiguration;
import net.shibboleth.oidc.profile.config.impl.DefaultOIDCAuthorizationConfiguration;
+import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.profile.relyingparty.BasicRelyingPartyConfiguration;
+import net.shibboleth.profile.relyingparty.RelyingPartyConfiguration;
/** Tests for {@link AddRedirectURIHandler}.*/
public class AddRedirectURIHandlerTest extends AbstractOIDCTest {
@@ -48,9 +49,9 @@ public class AddRedirectURIHandlerTest extends AbstractOIDCTest {
super.setup();
handler = new AddRedirectURIHandler();
- rpc = prc.getSubcontext(RelyingPartyContext.class, true);
+ rpc = prc.ensureSubcontext(RelyingPartyContext.class);
oidcAuthzConfig = new DefaultOIDCAuthorizationConfiguration();
- final RelyingPartyConfiguration rpConfig = new RelyingPartyConfiguration();
+ final RelyingPartyConfiguration rpConfig = new BasicRelyingPartyConfiguration();
rpc.setProfileConfig(oidcAuthzConfig);
rpc.setConfiguration(rpConfig);
diff --git a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddRequestedClaimsHandlerTest.java b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddRequestedClaimsHandlerTest.java
index e80f40b..9e37d42 100644
--- a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddRequestedClaimsHandlerTest.java
+++ b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddRequestedClaimsHandlerTest.java
@@ -28,10 +28,11 @@ import com.nimbusds.openid.connect.sdk.OIDCClaimsRequest;
import com.nimbusds.openid.connect.sdk.assurance.claims.VerifiedClaimsSetRequest;
import net.shibboleth.idp.plugin.authn.oidc.rp.impl.AbstractOIDCTest;
-import net.shibboleth.idp.profile.context.RelyingPartyContext;
-import net.shibboleth.idp.relyingparty.RelyingPartyConfiguration;
import net.shibboleth.oidc.profile.config.impl.DefaultOIDCAuthorizationConfiguration;
import net.shibboleth.oidc.profile.core.OIDCAuthenticationRequest;
+import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.profile.relyingparty.BasicRelyingPartyConfiguration;
+import net.shibboleth.profile.relyingparty.RelyingPartyConfiguration;
/** Tests for the AddRequestedClaimsHandler action.*/
public class AddRequestedClaimsHandlerTest extends AbstractOIDCTest {
@@ -51,9 +52,9 @@ public class AddRequestedClaimsHandlerTest extends AbstractOIDCTest {
super.setup();
handler = new AddRequestedClaimsHandler();
- rpc = prc.getSubcontext(RelyingPartyContext.class, true);
+ rpc = prc.ensureSubcontext(RelyingPartyContext.class);
oidcAuthzConfig = new DefaultOIDCAuthorizationConfiguration();
- final RelyingPartyConfiguration rpConfig = new RelyingPartyConfiguration();
+ final RelyingPartyConfiguration rpConfig = new BasicRelyingPartyConfiguration();
rpc.setProfileConfig(oidcAuthzConfig);
rpc.setConfiguration(rpConfig);
}
diff --git a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddResponseTypeAndModeHandlerTest.java b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddResponseTypeAndModeHandlerTest.java
index 707af65..6339939 100644
--- a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddResponseTypeAndModeHandlerTest.java
+++ b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddResponseTypeAndModeHandlerTest.java
@@ -28,10 +28,11 @@ import com.nimbusds.oauth2.sdk.ResponseMode;
import com.nimbusds.oauth2.sdk.ResponseType;
import net.shibboleth.idp.plugin.authn.oidc.rp.impl.AbstractOIDCTest;
-import net.shibboleth.idp.profile.context.RelyingPartyContext;
-import net.shibboleth.idp.relyingparty.RelyingPartyConfiguration;
import net.shibboleth.oidc.profile.config.impl.DefaultOIDCAuthorizationConfiguration;
import net.shibboleth.oidc.profile.core.OIDCAuthenticationRequest;
+import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.profile.relyingparty.BasicRelyingPartyConfiguration;
+import net.shibboleth.profile.relyingparty.RelyingPartyConfiguration;
/** Tests for the {@link AddResponseTypeAndModeHandler} action.*/
public class AddResponseTypeAndModeHandlerTest extends AbstractOIDCTest {
@@ -51,9 +52,9 @@ public class AddResponseTypeAndModeHandlerTest extends AbstractOIDCTest {
public void setup() throws Exception {
super.setup();
handler = new AddResponseTypeAndModeHandler();
- rpc = prc.getSubcontext(RelyingPartyContext.class, true);
+ rpc = prc.ensureSubcontext(RelyingPartyContext.class);
oidcAuthzConfig = new DefaultOIDCAuthorizationConfiguration();
- final RelyingPartyConfiguration rpConfig = new RelyingPartyConfiguration();
+ final RelyingPartyConfiguration rpConfig = new BasicRelyingPartyConfiguration();
rpc.setProfileConfig(oidcAuthzConfig);
rpc.setConfiguration(rpConfig);
}
diff --git a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddScopesHandlerTest.java b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddScopesHandlerTest.java
index b1fd700..b7c8b38 100644
--- a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddScopesHandlerTest.java
+++ b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/messaging/impl/AddScopesHandlerTest.java
@@ -26,9 +26,10 @@ import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import net.shibboleth.idp.plugin.authn.oidc.rp.impl.AbstractOIDCTest;
-import net.shibboleth.idp.profile.context.RelyingPartyContext;
-import net.shibboleth.idp.relyingparty.RelyingPartyConfiguration;
import net.shibboleth.oidc.profile.config.impl.DefaultOIDCAuthorizationConfiguration;
+import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.profile.relyingparty.BasicRelyingPartyConfiguration;
+import net.shibboleth.profile.relyingparty.RelyingPartyConfiguration;
/** Tests for {@link AddScopesHandler}.*/
public class AddScopesHandlerTest extends AbstractOIDCTest {
@@ -48,9 +49,9 @@ public class AddScopesHandlerTest extends AbstractOIDCTest {
super.setup();
handler = new AddScopesHandler();
- rpc = prc.getSubcontext(RelyingPartyContext.class, true);
+ rpc = prc.ensureSubcontext(RelyingPartyContext.class);
oidcAuthzConfig = new DefaultOIDCAuthorizationConfiguration();
- final RelyingPartyConfiguration rpConfig = new RelyingPartyConfiguration();
+ final RelyingPartyConfiguration rpConfig = new BasicRelyingPartyConfiguration();
rpc.setProfileConfig(oidcAuthzConfig);
rpc.setConfiguration(rpConfig);
diff --git a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/metadata/impl/OIDCProviderMetadataLookupHandlerTest.java b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/metadata/impl/OIDCProviderMetadataLookupHandlerTest.java
index 336a19d..c1e0016 100644
--- a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/metadata/impl/OIDCProviderMetadataLookupHandlerTest.java
+++ b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/oidc/rp/metadata/impl/OIDCProviderMetadataLookupHandlerTest.java
@@ -37,8 +37,8 @@ import net.shibboleth.oidc.metadata.ProviderMetadataResolver;
import net.shibboleth.oidc.metadata.context.OIDCProviderMetadataContext;
import net.shibboleth.oidc.metadata.criterion.IssuerIDCriterion;
import net.shibboleth.oidc.profile.messaging.context.AbstractOIDCEntityContext;
-import net.shibboleth.utilities.java.support.resolver.CriteriaSet;
-import net.shibboleth.utilities.java.support.resolver.ResolverException;
+import net.shibboleth.shared.resolver.CriteriaSet;
+import net.shibboleth.shared.resolver.ResolverException;
/** Tests for OIDCClientMetadataLookupHandler.*/
public class OIDCProviderMetadataLookupHandlerTest extends AbstractOIDCTest {
diff --git a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/test/flow/AbstractAuthnXmlFlowExecutionTests.java b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/test/flow/AbstractAuthnXmlFlowExecutionTests.java
index 9f04867..c13e827 100644
--- a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/test/flow/AbstractAuthnXmlFlowExecutionTests.java
+++ b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/test/flow/AbstractAuthnXmlFlowExecutionTests.java
@@ -31,6 +31,8 @@ import javax.annotation.Nullable;
import org.mockito.Mockito;
import org.opensaml.profile.context.ProfileRequestContext;
+import org.opensaml.profile.context.navigate.InboundMessageContextLookup;
+import org.opensaml.profile.context.navigate.OutboundMessageContextLookup;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.BeanFactory;
@@ -63,29 +65,37 @@ import org.springframework.webflow.test.execution.AbstractExternalizedFlowExecut
import com.google.common.net.HttpHeaders;
-import net.shibboleth.ext.spring.config.BooleanToPredicateConverter;
-import net.shibboleth.ext.spring.config.FunctionToFunctionConverter;
-import net.shibboleth.ext.spring.config.IdentifiableBeanPostProcessor;
-import net.shibboleth.ext.spring.config.PredicateToPredicateConverter;
-import net.shibboleth.ext.spring.config.StringBooleanToPredicateConverter;
-import net.shibboleth.ext.spring.config.StringToIPRangeConverter;
-import net.shibboleth.ext.spring.config.StringToResourceConverter;
-import net.shibboleth.ext.spring.resource.ConditionalResourceResolver;
-import net.shibboleth.ext.spring.util.AnnotationParameterNameDiscoverer;
import net.shibboleth.idp.authn.AuthenticationFlowDescriptor;
import net.shibboleth.idp.authn.context.AuthenticationContext;
import net.shibboleth.idp.authn.context.SubjectCanonicalizationContext;
import net.shibboleth.idp.plugin.authn.test.spring.CustomAbstractXmlFlowExecutionTests;
import net.shibboleth.idp.plugin.authn.test.spring.CustomFlowModelFlowBuilder;
import net.shibboleth.idp.profile.context.navigate.WebflowRequestContextProfileRequestContextLookup;
+import net.shibboleth.idp.profile.impl.ProfileActionBeanPostProcessor;
import net.shibboleth.idp.session.IdPSession;
import net.shibboleth.idp.session.context.SessionContext;
import net.shibboleth.idp.ui.context.RelyingPartyUIContext;
-import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
-import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
-import net.shibboleth.utilities.java.support.net.HttpServletRequestResponseContext;
-import net.shibboleth.utilities.java.support.security.impl.SecureRandomIdentifierGenerationStrategy;
-import net.shibboleth.utilities.java.support.xml.DOMTypeSupport;
+import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.profile.context.navigate.IssuerLookupFunction;
+import net.shibboleth.profile.context.navigate.RelyingPartyIdLookupFunction;
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
+import net.shibboleth.shared.annotation.constraint.NotEmpty;
+import net.shibboleth.shared.logic.FunctionSupport;
+import net.shibboleth.shared.logic.ScriptedFunction;
+import net.shibboleth.shared.security.impl.SecureRandomIdentifierGenerationStrategy;
+import net.shibboleth.shared.servlet.impl.HttpServletRequestResponseContext;
+import net.shibboleth.shared.servlet.impl.ThreadLocalHttpServletRequestSupplier;
+import net.shibboleth.shared.servlet.impl.ThreadLocalHttpServletResponseSupplier;
+import net.shibboleth.shared.spring.config.BooleanToPredicateConverter;
+import net.shibboleth.shared.spring.config.IdentifiableBeanPostProcessor;
+import net.shibboleth.shared.spring.config.StringBooleanToPredicateConverter;
+import net.shibboleth.shared.spring.config.StringToIPRangeConverter;
+import net.shibboleth.shared.spring.config.StringToResourceConverter;
+import net.shibboleth.shared.spring.expression.SpringExpressionBiFunction;
+import net.shibboleth.shared.spring.expression.SpringExpressionFunction;
+import net.shibboleth.shared.spring.resource.ConditionalResourceResolver;
+import net.shibboleth.shared.spring.util.AnnotationParameterNameDiscoverer;
+import net.shibboleth.shared.xml.DOMTypeSupport;
/**
@@ -295,12 +305,10 @@ public abstract class AbstractAuthnXmlFlowExecutionTests extends CustomAbstractX
// register http servlet suppliers
addBeanDefinition(builderContext, "shibboleth.HttpServletRequestSupplier",BeanDefinitionBuilder.
- genericBeanDefinition(
- net.shibboleth.utilities.java.support.net.ThreadLocalHttpServletRequestSupplier.class)
+ genericBeanDefinition(ThreadLocalHttpServletRequestSupplier.class)
.getBeanDefinition());
addBeanDefinition(builderContext, "shibboleth.HttpServletResponseSupplier",BeanDefinitionBuilder.
- genericBeanDefinition(
- net.shibboleth.utilities.java.support.net.ThreadLocalHttpServletResponseSupplier.class)
+ genericBeanDefinition(ThreadLocalHttpServletResponseSupplier.class)
.getBeanDefinition());
// Load the request and final response context into the holder.
@@ -321,52 +329,52 @@ public abstract class AbstractAuthnXmlFlowExecutionTests extends CustomAbstractX
//register shibboleth function constants.
addBeanDefinition(builderContext, "shibboleth.Functions.Constant",BeanDefinitionBuilder.
- genericBeanDefinition(net.shibboleth.utilities.java.support.logic.FunctionSupport.class)
+ genericBeanDefinition(FunctionSupport.class)
.setFactoryMethod("constant").setAbstract(true).getBeanDefinition());
addBeanDefinition(builderContext, "shibboleth.Functions.Compose",BeanDefinitionBuilder.
- genericBeanDefinition(net.shibboleth.utilities.java.support.logic.FunctionSupport.class)
+ genericBeanDefinition(FunctionSupport.class)
.setFactoryMethod("compose").setAbstract(true).getBeanDefinition());
addBeanDefinition(builderContext, "shibboleth.ContextFunctions.Expression",BeanDefinitionBuilder.
- genericBeanDefinition(net.shibboleth.utilities.java.support.logic.FunctionSupport.class)
+ genericBeanDefinition(FunctionSupport.class)
.setFactoryMethod("compose").setAbstract(true).getBeanDefinition());
addBeanDefinition(builderContext, "shibboleth.MessageContextLookup.Outbound",BeanDefinitionBuilder.
- genericBeanDefinition(org.opensaml.profile.context.navigate.OutboundMessageContextLookup.class)
+ genericBeanDefinition(OutboundMessageContextLookup.class)
.getBeanDefinition());
addBeanDefinition(builderContext, "shibboleth.MessageContextLookup.Inbound",BeanDefinitionBuilder.
- genericBeanDefinition(org.opensaml.profile.context.navigate.InboundMessageContextLookup.class)
+ genericBeanDefinition(InboundMessageContextLookup.class)
.getBeanDefinition());
- addBeanDefinition(builderContext, "shibboleth.ResponderIdLookup.Simple",BeanDefinitionBuilder.
- genericBeanDefinition(net.shibboleth.idp.profile.context.navigate.ResponderIdLookupFunction.class)
+ addBeanDefinition(builderContext, "shibboleth.IssuerLookup.Simple",BeanDefinitionBuilder.
+ genericBeanDefinition(IssuerLookupFunction.class)
.getBeanDefinition());
addBeanDefinition(builderContext, "shibboleth.RelyingPartyIdLookup.Simple",BeanDefinitionBuilder.
- genericBeanDefinition(net.shibboleth.idp.profile.context.navigate.RelyingPartyIdLookupFunction.class)
+ genericBeanDefinition(RelyingPartyIdLookupFunction.class)
.getBeanDefinition());
addBeanDefinition(builderContext, "shibboleth.Functions.Expression",BeanDefinitionBuilder.
- genericBeanDefinition(net.shibboleth.ext.spring.util.SpringExpressionFunction.class)
+ genericBeanDefinition(SpringExpressionFunction.class)
.setAbstract(true).getBeanDefinition());
addBeanDefinition(builderContext, "shibboleth.Functions.Scripted",BeanDefinitionBuilder.
- genericBeanDefinition(net.shibboleth.utilities.java.support.logic.ScriptedFunction.class)
+ genericBeanDefinition(ScriptedFunction.class)
.setAbstract(true).getBeanDefinition());
addBeanDefinition(builderContext, "shibboleth.BiFunctions.Expression",BeanDefinitionBuilder.
- genericBeanDefinition(net.shibboleth.ext.spring.util.SpringExpressionBiFunction.class)
+ genericBeanDefinition(SpringExpressionBiFunction.class)
.setAbstract(true).getBeanDefinition());
addBeanDefinition(builderContext, "shibboleth.ChildLookup.RelyingParty",BeanDefinitionBuilder.
genericBeanDefinition(org.opensaml.messaging.context.navigate.ChildContextLookup.class)
- .addConstructorArgValue(net.shibboleth.idp.profile.context.RelyingPartyContext.class).getBeanDefinition());
+ .addConstructorArgValue(RelyingPartyContext.class).getBeanDefinition());
addBeanDefinition(builderContext, "shibboleth.ChildLookup.ProfileRequestContext",BeanDefinitionBuilder.
genericBeanDefinition(org.opensaml.messaging.context.navigate.ChildContextLookup.class)
@@ -505,6 +513,10 @@ public abstract class AbstractAuthnXmlFlowExecutionTests extends CustomAbstractX
ppc.setPlaceholderSuffix("}");
ppc.postProcessBeanFactory((DefaultListableBeanFactory)factory);
+ // Shibboleth change - auto-inject our profile flow bean processors.
+ ((DefaultListableBeanFactory)factory).addBeanPostProcessor(new IdentifiableBeanPostProcessor());
+ ((DefaultListableBeanFactory)factory).addBeanPostProcessor(new ProfileActionBeanPostProcessor());
+
log.info("Loaded {} beans from {}",beanNumbers, xmlFile);
}
@@ -533,8 +545,7 @@ public abstract class AbstractAuthnXmlFlowExecutionTests extends CustomAbstractX
//like the above converter. TODO check why.
return Set.of(durationConverter, new StringToResourceConverter(), new StringToIPRangeConverter(),
new BooleanToPredicateConverter(),new StringBooleanToPredicateConverter(),
- new StringToResourceConverter(),new FunctionToFunctionConverter<>(),
- new PredicateToPredicateConverter<>());
+ new StringToResourceConverter());
}
/**
diff --git a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/test/flow/mock/MockFlowBuilder.java b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/test/flow/mock/MockFlowBuilder.java
index b92e1b0..457997e 100644
--- a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/test/flow/mock/MockFlowBuilder.java
+++ b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/test/flow/mock/MockFlowBuilder.java
@@ -29,7 +29,7 @@ import org.springframework.webflow.engine.support.DefaultTargetStateResolver;
import org.springframework.webflow.execution.Event;
import org.springframework.webflow.execution.FlowExecutionException;
-import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
+import net.shibboleth.shared.annotation.constraint.NotEmpty;
/**
* A builder for generating simple mock flows. Mostly used to generate stub subflows when testing
diff --git a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/test/spring/CustomFlowModelFlowBuilder.java b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/test/spring/CustomFlowModelFlowBuilder.java
index ede1c76..57fee1e 100644
--- a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/test/spring/CustomFlowModelFlowBuilder.java
+++ b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/test/spring/CustomFlowModelFlowBuilder.java
@@ -116,10 +116,10 @@ import org.springframework.webflow.scope.FlowScope;
import org.springframework.webflow.scope.ViewScope;
import org.springframework.webflow.security.SecurityRule;
-import net.shibboleth.ext.spring.config.IdentifiableBeanPostProcessor;
-import net.shibboleth.ext.spring.resource.ConditionalResourceResolver;
-import net.shibboleth.ext.spring.util.AnnotationParameterNameDiscoverer;
import net.shibboleth.idp.profile.impl.ProfileActionBeanPostProcessor;
+import net.shibboleth.shared.spring.config.IdentifiableBeanPostProcessor;
+import net.shibboleth.shared.spring.resource.ConditionalResourceResolver;
+import net.shibboleth.shared.spring.util.AnnotationParameterNameDiscoverer;
/**
* Copy of {@link FlowModelFlowBuilder} for setting the property placeholder prefix of <code>%{</code>, and
diff --git a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/test/spring/MockApplicationContext.java b/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/test/spring/MockApplicationContext.java
deleted file mode 100644
index 476607e..0000000
--- a/idp-oidc-rp-impl/src/test/java/net/shibboleth/idp/plugin/authn/test/spring/MockApplicationContext.java
+++ /dev/null
@@ -1,482 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements. See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You 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.idp.plugin.authn.test.spring;
-
-import static org.testng.Assert.fail;
-
-import java.io.IOException;
-import java.lang.annotation.Annotation;
-import java.util.Locale;
-import java.util.Map;
-
-import org.springframework.beans.BeansException;
-import org.springframework.beans.factory.BeanFactory;
-import org.springframework.beans.factory.NoSuchBeanDefinitionException;
-import org.springframework.beans.factory.ObjectProvider;
-import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
-import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
-import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.ApplicationListener;
-import org.springframework.context.ConfigurableApplicationContext;
-import org.springframework.context.MessageSourceResolvable;
-import org.springframework.context.NoSuchMessageException;
-import org.springframework.core.ResolvableType;
-import org.springframework.core.env.ConfigurableEnvironment;
-import org.springframework.core.io.ProtocolResolver;
-import org.springframework.core.io.Resource;
-import org.springframework.core.metrics.ApplicationStartup;
-
-import net.shibboleth.ext.spring.service.AbstractServiceableComponent;
-
-/**
- * Placeholder, which can be set on test {@link AbstractServiceableComponent}s to stop the
- * "must be null" test firing.
- */
-public class MockApplicationContext implements ConfigurableApplicationContext {
-
- /** {@inheritDoc} */
- @Override
- public String getId() {
- fail();
- return null;
- }
-
- /** {@inheritDoc} */
- @Override
- public String getApplicationName() {
- fail();
- return null;
- }
-
- /** {@inheritDoc} */
- @Override
- public String getDisplayName() {
- fail();
- return null;
- }
-
- /** {@inheritDoc} */
- @Override
- public long getStartupDate() {
- fail();
- return 0;
- }
-
- /** {@inheritDoc} */
- @Override
- public ApplicationContext getParent() {
- fail();
- return null;
- }
-
- /** {@inheritDoc} */
- @Override
- public AutowireCapableBeanFactory getAutowireCapableBeanFactory() throws IllegalStateException {
- fail();
- return null;
- }
-
- /** {@inheritDoc} */
- @Override
- public boolean containsBeanDefinition(final String beanName) {
- fail();
- return false;
- }
-
- /** {@inheritDoc} */
- @Override
- public int getBeanDefinitionCount() {
- fail();
- return 0;
- }
-
- /** {@inheritDoc} */
- @Override
- public String[] getBeanDefinitionNames() {
- fail();
- return null;
- }
-
- /** {@inheritDoc} */
- @Override
- public String[] getBeanNamesForType(final ResolvableType type) {
- fail();
- return null;
- }
-
- /** {@inheritDoc} */
- @Override
- public String[] getBeanNamesForType(final ResolvableType type, final boolean includeNonSingletons, final boolean allowEagerInit) {
- fail();
- return null;
- }
-
- /** {@inheritDoc} */
- @Override
- public String[] getBeanNamesForType(final Class<?> type) {
- fail();
- return null;
- }
-
- /** {@inheritDoc} */
- @Override
- public String[] getBeanNamesForType(final Class<?> type, final boolean includeNonSingletons, final boolean allowEagerInit) {
- fail();
- return null;
- }
-
- /** {@inheritDoc} */
- @Override
- public <T> Map<String, T> getBeansOfType(final Class<T> type) throws BeansException {
- fail();
- return null;
- }
-
- /** {@inheritDoc} */
- @Override
- public <T> Map<String, T> getBeansOfType(final Class<T> type, final boolean includeNonSingletons, final boolean allowEagerInit)
- throws BeansException {
- fail();
- return null;
- }
-
- /** {@inheritDoc} */
- @Override
- public String[] getBeanNamesForAnnotation(final Class<? extends Annotation> annotationType) {
- fail();
- return null;
- }
-
- /** {@inheritDoc} */
- @Override
- public Map<String, Object> getBeansWithAnnotation(final Class<? extends Annotation> annotationType)
- throws BeansException {
- fail();
- return null;
- }
-
- /** {@inheritDoc} */
- @Override
- public <A extends Annotation> A findAnnotationOnBean(final String beanName, final Class<A> annotationType)
- throws NoSuchBeanDefinitionException {
- fail();
- return null;
- }
-
- /** {@inheritDoc} */
- @Override
- public Object getBean(final String name) throws BeansException {
- fail();
- return null;
- }
-
- /** {@inheritDoc} */
- @Override
- public <T> T getBean(final String name, final Class<T> requiredType) throws BeansException {
- fail();
- return null;
- }
-
- /** {@inheritDoc} */
- @Override
- public Object getBean(final String name, final Object... args) throws BeansException {
- fail();
- return null;
- }
-
- /** {@inheritDoc} */
- @Override
- public <T> T getBean(final Class<T> requiredType) throws BeansException {
- fail();
- return null;
- }
-
- /** {@inheritDoc} */
- @Override
- public <T> T getBean(final Class<T> requiredType, final Object... args) throws BeansException {
- fail();
- return null;
- }
-
- /** {@inheritDoc} */
- @Override
- public <T> ObjectProvider<T> getBeanProvider(final Class<T> requiredType) {
- fail();
- return null;
- }
-
- /** {@inheritDoc} */
- @Override
- public <T> ObjectProvider<T> getBeanProvider(final ResolvableType requiredType) {
- fail();
- return null;
- }
-
- /** {@inheritDoc} */
- @Override
- public boolean containsBean(final String name) {
- fail();
- return false;
- }
-
- /** {@inheritDoc} */
- @Override
- public boolean isSingleton(final String name) throws NoSuchBeanDefinitionException {
- fail();
- return false;
- }
-
- /** {@inheritDoc} */
- @Override
- public boolean isPrototype(final String name) throws NoSuchBeanDefinitionException {
- fail();
- return false;
- }
-
- /** {@inheritDoc} */
- @Override
- public boolean isTypeMatch(final String name, final ResolvableType typeToMatch) throws NoSuchBeanDefinitionException {
- fail();
- return false;
- }
-
- /** {@inheritDoc} */
- @Override
- public boolean isTypeMatch(final String name, final Class<?> typeToMatch) throws NoSuchBeanDefinitionException {
- fail();
- return false;
- }
-
- /** {@inheritDoc} */
- @Override
- public Class<?> getType(final String name) throws NoSuchBeanDefinitionException {
- fail();
- return null;
- }
-
- /** {@inheritDoc} */
- @Override
- public Class<?> getType(final String name, final boolean allowFactoryBeanInit) throws NoSuchBeanDefinitionException {
- fail();
- return null;
- }
-
- /** {@inheritDoc} */
- @Override
- public String[] getAliases(final String name) {
- fail();
- return null;
- }
-
- /** {@inheritDoc} */
- @Override
- public BeanFactory getParentBeanFactory() {
- fail();
- return null;
- }
-
- /** {@inheritDoc} */
- @Override
- public boolean containsLocalBean(final String name) {
- fail();
- return false;
- }
-
- /** {@inheritDoc} */
- @Override
- public String getMessage(final String code, final Object[] args, final String defaultMessage, final Locale locale) {
- fail();
- return null;
- }
-
- /** {@inheritDoc} */
- @Override
- public String getMessage(final String code, final Object[] args, final Locale locale) throws NoSuchMessageException {
- fail();
- return null;
- }
-
- /** {@inheritDoc} */
- @Override
- public String getMessage(final MessageSourceResolvable resolvable, final Locale locale) throws NoSuchMessageException {
- fail();
- return null;
- }
-
- /** {@inheritDoc} */
- @Override
- public void publishEvent(final Object event) {
- fail();
- }
-
- /** {@inheritDoc} */
- @Override
- public Resource[] getResources(final String locationPattern) throws IOException {
- fail();
- return null;
- }
-
- /** {@inheritDoc} */
- @Override
- public Resource getResource(final String location) {
- fail();
- return null;
- }
-
- /** {@inheritDoc} */
- @Override
- public ClassLoader getClassLoader() {
- fail();
- return null;
- }
-
- /** {@inheritDoc} */
- @Override
- public void start() {
- fail();
- }
-
- /** {@inheritDoc} */
- @Override
- public void stop() {
- fail();
- }
-
- /** {@inheritDoc} */
- @Override
- public boolean isRunning() {
- fail();
- return false;
- }
-
- /** {@inheritDoc} */
- @Override
- public void setId(final String id) {
- fail();
- }
-
- /** {@inheritDoc} */
- @Override
- public void setParent(final ApplicationContext parent) {
- fail();
- }
-
- /** {@inheritDoc} */
- @Override
- public void setEnvironment(final ConfigurableEnvironment environment) {
- fail();
- }
-
- /** {@inheritDoc} */
- @Override
- public ConfigurableEnvironment getEnvironment() {
- fail();
- return null;
- }
-
- /** {@inheritDoc} */
- @Override
- public void addBeanFactoryPostProcessor(final BeanFactoryPostProcessor postProcessor) {
- fail();
- }
-
- /** {@inheritDoc} */
- @Override
- public void addApplicationListener(final ApplicationListener<?> listener) {
- fail();
- }
-
- /** {@inheritDoc} */
- @Override
- public void addProtocolResolver(final ProtocolResolver resolver) {
- fail();
- }
-
- /** {@inheritDoc} */
- @Override
- public void refresh() throws BeansException, IllegalStateException {
- fail();
- }
-
- /** {@inheritDoc} */
- @Override
- public void registerShutdownHook() {
- fail();
- }
-
- /** {@inheritDoc} */
- @Override
- public void close() {
- }
-
- /** {@inheritDoc} */
- @Override
- public boolean isActive() {
- fail();
- return false;
- }
-
- /** {@inheritDoc} */
- @Override
- public ConfigurableListableBeanFactory getBeanFactory() throws IllegalStateException {
- fail();
- return null;
- }
-
- /** {@inheritDoc} */
- @Override
- public void setClassLoader(final ClassLoader classLoader) {
- fail();
- }
-
- /** {@inheritDoc} */
- @Override
- public <T> ObjectProvider<T> getBeanProvider(final Class<T> requiredType, final boolean allowEagerInit) {
- fail();
- return null;
- }
-
- /** {@inheritDoc} */
- @Override
- public <T> ObjectProvider<T> getBeanProvider(final ResolvableType requiredType, final boolean allowEagerInit) {
- fail();
- return null;
- }
-
- /** {@inheritDoc} */
- @Override
- public void setApplicationStartup(final ApplicationStartup applicationStartup) {
- fail();
- }
-
- /** {@inheritDoc} */
- @Override
- public ApplicationStartup getApplicationStartup() {
- fail();
- return null;
- }
-
- /** {@inheritDoc} */
- @Override
- public <A extends Annotation> A findAnnotationOnBean(final String beanName, final Class<A> annotationType,
- final boolean allowFactoryBeanInit) throws NoSuchBeanDefinitionException {
- fail();
- return null;
- }
-}
diff --git a/idp-oidc-rp-impl/src/test/resources/attribute/filter/attribute-filter-system.xml b/idp-oidc-rp-impl/src/test/resources/attribute/filter/attribute-filter-system.xml
index ae21ec2..4ac158c 100644
--- a/idp-oidc-rp-impl/src/test/resources/attribute/filter/attribute-filter-system.xml
+++ b/idp-oidc-rp-impl/src/test/resources/attribute/filter/attribute-filter-system.xml
@@ -12,7 +12,7 @@
default-init-method="initialize"
default-destroy-method="destroy">
- <bean id="shibboleth.AttributeFilterService" class="net.shibboleth.ext.spring.service.ReloadableSpringService"
+ <bean id="shibboleth.AttributeFilterService" class="net.shibboleth.shared.spring.service.ReloadableSpringService"
depends-on="shibboleth.VelocityEngine"
p:failFast="%{idp.service.attribute.filter.failFast:%{idp.service.failFast:false}}"
p:reloadCheckDelay="%{idp.service.attribute.filter.checkInterval:PT0S}"
diff --git a/idp-oidc-rp-impl/src/test/resources/attribute/registry/postconfig.xml b/idp-oidc-rp-impl/src/test/resources/attribute/registry/postconfig.xml
index 12132eb..91d576c 100644
--- a/idp-oidc-rp-impl/src/test/resources/attribute/registry/postconfig.xml
+++ b/idp-oidc-rp-impl/src/test/resources/attribute/registry/postconfig.xml
@@ -14,7 +14,7 @@
<!-- Test config that pulls together various attribute encoders and registries to allow the flow
tests to run -->
- <bean id="shibboleth.AttributeRegistryService" class="net.shibboleth.ext.spring.service.ReloadableSpringService"
+ <bean id="shibboleth.AttributeRegistryService" class="net.shibboleth.shared.spring.service.ReloadableSpringService"
p:failFast="false"
p:reloadCheckDelay="PT0S"
p:beanPostProcessors-ref="shibboleth.IdentifiableBeanPostProcessor"
diff --git a/idp-oidc-rp-impl/src/test/resources/conf/additional-system-beans.xml b/idp-oidc-rp-impl/src/test/resources/conf/additional-system-beans.xml
index 09628b3..f8f1b48 100644
--- a/idp-oidc-rp-impl/src/test/resources/conf/additional-system-beans.xml
+++ b/idp-oidc-rp-impl/src/test/resources/conf/additional-system-beans.xml
@@ -10,7 +10,7 @@
default-init-method="initialize" default-destroy-method="destroy">
<!-- from externalBeans.xml -->
- <bean id="shibboleth.VelocityEngine" class="net.shibboleth.ext.spring.velocity.VelocityEngineFactoryBean">
+ <bean id="shibboleth.VelocityEngine" class="net.shibboleth.shared.spring.velocity.VelocityEngineFactoryBean">
<property name="velocityProperties">
<props>
<prop key="resource.loaders">classpath, string</prop>
diff --git a/idp-oidc-rp-impl/src/test/resources/conf/test-relying-party-postconfig.xml b/idp-oidc-rp-impl/src/test/resources/conf/test-relying-party-postconfig.xml
index f8c0157..f35d403 100644
--- a/idp-oidc-rp-impl/src/test/resources/conf/test-relying-party-postconfig.xml
+++ b/idp-oidc-rp-impl/src/test/resources/conf/test-relying-party-postconfig.xml
@@ -215,13 +215,13 @@
<!-- Used by the OP -->
<bean id="ClientInformationCredentialResolver"
class="net.shibboleth.oidc.security.credential.impl.ClientInformationCredentialResolver"
- p:remoteJwkSetCache-ref="shibboleth.oidc.RemoteJwkSetCache"
- p:keyFetchInterval="%{idp.oidc.provider.keyfetch.interval:PT30M}"/>
+ c:remoteJwkSetCache-ref="shibboleth.oidc.RemoteJwkSetCache"
+ c:keyFetchInterval="%{idp.oidc.provider.keyfetch.interval:PT30M}"/>
<!-- Used by the RP -->
<bean id="OIDCProviderMetadataCredentialResolver"
class="net.shibboleth.oidc.security.credential.impl.ProviderMetadataCredentialResolver"
- p:remoteJwkSetCache-ref="shibboleth.oidc.RemoteJwkSetCache"
- p:keyFetchInterval="%{idp.oidc.provider.keyfetch.interval:PT30M}" />
+ c:remoteJwkSetCache-ref="shibboleth.oidc.RemoteJwkSetCache"
+ c:keyFetchInterval="%{idp.oidc.provider.keyfetch.interval:PT30M}" />
<bean id="ClientSecretCriterionCredentialResolver"
class="net.shibboleth.oidc.security.credential.impl.ClientSecretCriterionCredentialResolver"/>
</list>
@@ -235,8 +235,8 @@
<!-- Used by the OP -->
<bean id="ClientInformationCredentialResolver"
class="net.shibboleth.oidc.security.credential.impl.ClientInformationCredentialResolver"
- p:remoteJwkSetCache-ref="shibboleth.oidc.RemoteJwkSetCache"
- p:keyFetchInterval="%{idp.oidc.provider.keyfetch.interval:PT30M}"/>
+ c:remoteJwkSetCache-ref="shibboleth.oidc.RemoteJwkSetCache"
+ c:keyFetchInterval="%{idp.oidc.provider.keyfetch.interval:PT30M}"/>
<!-- Used by the RP -->
<bean id="ClientSecretCriterionCredentialResolver"
class="net.shibboleth.oidc.security.credential.impl.ClientSecretCriterionCredentialResolver"/>
@@ -302,13 +302,13 @@
<!-- Used by the OP -->
<bean id="ClientInformationCredentialResolver"
class="net.shibboleth.oidc.security.credential.impl.ClientInformationCredentialResolver"
- p:remoteJwkSetCache-ref="shibboleth.oidc.RemoteJwkSetCache"
- p:keyFetchInterval="%{idp.oidc.provider.keyfetch.interval:PT30M}"/>
+ c:remoteJwkSetCache-ref="shibboleth.oidc.RemoteJwkSetCache"
+ c:keyFetchInterval="%{idp.oidc.provider.keyfetch.interval:PT30M}"/>
<!-- Used by the RP -->
<bean id="OIDCProviderMetadataCredentialResolver"
class="net.shibboleth.oidc.security.credential.impl.ProviderMetadataCredentialResolver"
- p:remoteJwkSetCache-ref="shibboleth.oidc.RemoteJwkSetCache"
- p:keyFetchInterval="%{idp.oidc.provider.keyfetch.interval:PT30M}"/>
+ c:remoteJwkSetCache-ref="shibboleth.oidc.RemoteJwkSetCache"
+ c:keyFetchInterval="%{idp.oidc.provider.keyfetch.interval:PT30M}"/>
<bean id="CriterionCredentialResolver"
class="net.shibboleth.oidc.security.credential.impl.ClientSecretCriterionCredentialResolver"/>
</list>
diff --git a/idp-oidc-rp-impl/src/test/resources/conf/test-relying-party-system.xml b/idp-oidc-rp-impl/src/test/resources/conf/test-relying-party-system.xml
index b334ee7..78855be 100644
--- a/idp-oidc-rp-impl/src/test/resources/conf/test-relying-party-system.xml
+++ b/idp-oidc-rp-impl/src/test/resources/conf/test-relying-party-system.xml
@@ -11,11 +11,13 @@
<!-- Parent bean for RelyingParty overrides based on activation by name(s). -->
<bean id="RelyingPartyByName" abstract="true" parent="RelyingParty"
- class="net.shibboleth.idp.saml.relyingparty.impl.RelyingPartyConfigurationSupport" factory-method="byName" />
+ class="net.shibboleth.saml.relyingparty.RelyingPartyConfigurationSupport" factory-method="byName" />
- <!-- removed, but I do not know what the default should be in this case
- p:defaultSecurityConfiguration-ref="%{idp.security.config:shibboleth.DefaultSecurityConfiguration}" -->
- <bean class="net.shibboleth.idp.relyingparty.impl.DefaultRelyingPartyConfigurationResolver"
+ <bean id="RelyingParty" abstract="true" class="net.shibboleth.profile.relyingparty.BasicRelyingPartyConfiguration"
+ p:issuer="#{getObject('entityID')}"
+ p:detailedErrorsPredicate="%{idp.errors.detailed:false}" />
+
+ <bean class="net.shibboleth.profile.relyingparty.impl.DefaultRelyingPartyConfigurationResolver"
p:unverifiedConfiguration-ref="shibboleth.UnverifiedRelyingParty"
p:defaultConfiguration-ref="shibboleth.DefaultRelyingParty"
p:relyingPartyConfigurations-ref="shibboleth.RelyingPartyOverrides"
@@ -23,9 +25,6 @@
p:encryptionCredentials="#{getObject('shibboleth.EncryptionCredentials')}" />
<bean id="entityID" class="java.lang.String" c:_0="%{idp.entityID}" />
-
- <bean id="RelyingParty" abstract="true" class="net.shibboleth.idp.relyingparty.RelyingPartyConfiguration"
- p:responderId="#{getObject('entityID')}" p:detailedErrorsPredicate="%{idp.errors.detailed:false}" />
<bean id="shibboleth.UnverifiedRelyingParty" parent="RelyingParty">
<property name="profileConfigurations">
diff --git a/idp-oidc-rp-impl/src/test/resources/conf/test-relyingparty-resolver-service.xml b/idp-oidc-rp-impl/src/test/resources/conf/test-relyingparty-resolver-service.xml
index 679c4b9..23026f9 100644
--- a/idp-oidc-rp-impl/src/test/resources/conf/test-relyingparty-resolver-service.xml
+++ b/idp-oidc-rp-impl/src/test/resources/conf/test-relyingparty-resolver-service.xml
@@ -10,24 +10,36 @@
default-init-method="initialize" default-destroy-method="destroy">
- <bean id="shibboleth.RelyingPartyResolverService"
- class="net.shibboleth.ext.spring.service.ReloadableSpringService"
- p:serviceConfigurations-ref="ExtendedRelyingPartyResolverResources"
- p:failFast="%{idp.service.relyingparty.failFast:%{idp.service.failFast:false}}"
- p:reloadCheckDelay="%{idp.service.relyingparty.checkInterval:PT0S}"
- p:beanPostProcessors-ref="shibboleth.IdentifiableBeanPostProcessor"
- p:beanFactoryPostProcessors-ref="shibboleth.PropertySourcesPlaceholderConfigurer">
- <constructor-arg name="claz"
- value="net.shibboleth.idp.relyingparty.RelyingPartyConfigurationResolver" />
+ <bean id="shibboleth.RelyingPartyResolverService" class="net.shibboleth.shared.spring.service.ReloadableSpringService"
+ p:serviceConfigurations-ref="ExtendedRelyingPartyResolverResources"
+ p:failFast="%{idp.service.relyingparty.failFast:%{idp.service.failFast:false}}"
+ p:reloadCheckDelay="%{idp.service.relyingparty.checkInterval:PT0S}"
+ p:beanPostProcessors-ref="shibboleth.IdentifiableBeanPostProcessor"
+ p:beanFactoryPostProcessors-ref="shibboleth.BeanFactoryPostProcessors" >
+ <constructor-arg name="claz" value="net.shibboleth.profile.relyingparty.RelyingPartyConfigurationResolver" />
<constructor-arg name="strategy">
- <bean class="net.shibboleth.ext.spring.service.ClassBasedServiceStrategy"
- c:serviceableClaz="net.shibboleth.idp.relyingparty.impl.DefaultRelyingPartyConfigurationResolver" />
+ <bean class="net.shibboleth.shared.spring.service.ClassBasedServiceStrategy"
+ c:serviceableClaz="net.shibboleth.profile.relyingparty.impl.DefaultRelyingPartyConfigurationResolver" />
</constructor-arg>
</bean>
+
+ <!-- BeanFactoryPostProcessors to apply. -->
+ <util:list id="shibboleth.BeanFactoryPostProcessors">
+ <ref bean="shibboleth.RelocatedBeanFactoryPostProcessor" />
+ </util:list>
+
+ <bean id="shibboleth.RelocatedBeanFactoryPostProcessor"
+ class="net.shibboleth.shared.spring.config.RelocatedBeanFactoryPostProcessor"
+ p:classes-ref="shibboleth.RelocatedClassMap"/>
+
+ <util:map id="shibboleth.RelocatedClassMap">
+
+ </util:map>
+
<!-- Auto-append system config file to resource set. -->
<bean id="ExtendedRelyingPartyResolverResources"
- class="net.shibboleth.ext.spring.factory.CombiningListFactoryBean"
+ class="net.shibboleth.shared.spring.factory.CombiningListFactoryBean"
p:firstList-ref="#{'%{idp.service.relyingparty.resources:shibboleth.RelyingPartyResolverResources}'.trim()}">
<property name="secondList">
<util:list>
@@ -36,10 +48,6 @@
</property>
</bean>
- <bean id="shibboleth.RelyingPartyConfigurationResolver"
- class="net.shibboleth.idp.relyingparty.impl.ReloadingRelyingPartyConfigurationResolver"
- c:resolverService-ref="shibboleth.RelyingPartyResolverService" />
-
<util:list id="shibboleth.RelyingPartyResolverResources">
<!-- <value>%{idp.home}/conf/relying-party.xml</value> <value>%{idp.home}/conf/credentials.xml</value> -->
</util:list>
diff --git a/pom.xml b/pom.xml
index 328602b..5f6f4ea 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,33 +5,28 @@
<parent>
<groupId>net.shibboleth</groupId>
<artifactId>parent</artifactId>
- <version>11.3.5</version>
+ <version>17.0.0-SNAPSHOT</version>
</parent>
<groupId>net.shibboleth.idp.plugin.authn</groupId>
<artifactId>idp-plugin-oidc-rp-parent</artifactId>
- <version>1.1.1-SNAPSHOT</version>
+ <version>2.0.0-SNAPSHOT</version>
<name>Shibboleth IdP :: Plugins :: OpenID Connect Relying Party Login Flow</name>
<packaging>pom</packaging>
<description>Java OIDC ReylingParty Proxy authentication plugin for the Shibboleth IdP.</description>
<properties>
<idp.groupId>net.shibboleth.idp</idp.groupId>
- <idp.version>4.3.0</idp.version>
+ <idp.version>5.0.0-SNAPSHOT</idp.version>
<opensaml.groupId>org.opensaml</opensaml.groupId>
- <opensaml.version>4.3.0</opensaml.version>
- <java-support.version>8.4.0</java-support.version>
- <spring-extensions.version>6.3.0</spring-extensions.version>
- <oidc.common.version>2.2.0</oidc.common.version>
- <idp.oidc.config.version>1.0.0</idp.oidc.config.version>
+ <opensaml.version>5.0.0-SNAPSHOT</opensaml.version>
+ <oidc.common.version>3.0.0-SNAPSHOT</oidc.common.version>
+ <idp.oidc.config.version>2.0.0-SNAPSHOT</idp.oidc.config.version>
<okhttp3.mockserver.version>4.9.3</okhttp3.mockserver.version>
+ <shib.shared.testing.version>9.0.0-SNAPSHOT</shib.shared.testing.version>
<okhttp3.tls.version>4.9.3</okhttp3.tls.version>
<idp.oidc.groupId>net.shibboleth.oidc</idp.oidc.groupId>
+ <shib-shared.groupId>net.shibboleth</shib-shared.groupId>
<checkstyle.configLocation>${project.basedir}/checkstyle.xml</checkstyle.configLocation>
- <!--
- REMOVE this enforcer-data override once the parent is up to date with an enforcer-data that contains
- net.shibboleth.idp.plugin.config.oidc. See https://shibboleth.atlassian.net/browse/JMVN-52
- -->
- <maven-dist-enforcer-data.version>1.0.13</maven-dist-enforcer-data.version>
</properties>
<distributionManagement>
@@ -41,23 +36,6 @@
</site>
</distributionManagement>
- <repositories>
- <repository>
- <id>shib-release</id>
- <url>https://build.shibboleth.net/nexus/content/groups/public</url>
- <snapshots>
- <enabled>false</enabled>
- </snapshots>
- </repository>
- <repository>
- <id>shib-snapshot</id>
- <url>https://build.shibboleth.net/nexus/content/repositories/snapshots</url>
- <releases>
- <enabled>false</enabled>
- </releases>
- </repository>
- </repositories>
-
<modules>
<module>idp-oidc-rp-impl</module>
<module>idp-oidc-rp-api</module>
@@ -121,6 +99,14 @@
<type>pom</type>
<scope>import</scope>
</dependency>
+ <!-- Shibboleth shared BOM -->
+ <dependency>
+ <groupId>${shib-shared.groupId}</groupId>
+ <artifactId>shib-shared-bom</artifactId>
+ <version>${shib.shared.testing.version}</version>
+ <type>pom</type>
+ <scope>import</scope>
+ </dependency>
<!-- Shibboleth IdP BOM for importing IdP dependencies -->
<dependency>
<groupId>${idp.groupId}</groupId>
@@ -128,15 +114,15 @@
<version>${idp.version}</version>
<type>pom</type>
<scope>import</scope>
- </dependency>
- <!-- Provided shibboleth support dependencies -->
- <dependency>
- <groupId>net.shibboleth.utilities</groupId>
- <artifactId>java-support</artifactId>
- <version>${java-support.version}</version>
- <scope>provided</scope>
- </dependency>
+ </dependency>
<!-- Test bom dependencies -->
+ <dependency>
+ <groupId>${shib-shared.groupId}</groupId>
+ <artifactId>shib-testing</artifactId>
+ <version>${shib.shared.testing.version}</version>
+ <type>pom</type>
+ <scope>import</scope>
+ </dependency>
<dependency>
<groupId>${idp.groupId}</groupId>
<artifactId>idp-tests-bom</artifactId>
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list