Class IntrospectionFlowTest
- java.lang.Object
-
- org.springframework.test.context.testng.AbstractTestNGSpringContextTests
-
- net.shibboleth.idp.test.flows.AbstractFlowTest
-
- net.shibboleth.idp.plugin.oidc.op.profile.flow.AbstractOidcFlowTest
-
- net.shibboleth.idp.plugin.oidc.op.profile.flow.AbstractOidcApiFlowTest
-
- net.shibboleth.idp.plugin.oidc.op.profile.flow.AbstractOidcClientAuthenticationFlowTest
-
- net.shibboleth.idp.plugin.oidc.op.profile.flow.IntrospectionFlowTest
-
- All Implemented Interfaces:
Aware,ApplicationContextAware,org.testng.IHookable,org.testng.ITestNGListener
public class IntrospectionFlowTest extends AbstractOidcClientAuthenticationFlowTest
Unit tests for the OAuth2 introspection flow.
-
-
Field Summary
Fields Modifier and Type Field Description static StringFLOW_IDprivate RevocationCacherevocationCacheprivate com.nimbusds.oauth2.sdk.Scopescopeprivate net.shibboleth.oidc.security.credential.JWKCredentialsigningKeyprivate StorageServicestorageService-
Fields inherited from class net.shibboleth.idp.plugin.oidc.op.profile.flow.AbstractOidcClientAuthenticationFlowTest
clientId, clientIdSaml, clientSecret, clientSecretSaml, issuer, jwtAud
-
Fields inherited from class net.shibboleth.idp.plugin.oidc.op.profile.flow.AbstractOidcFlowTest
ecKey, END_STATE_ID, endStateId, flowId, rsaPrivateKey, rsaPublicKey
-
Fields inherited from class net.shibboleth.idp.test.flows.AbstractFlowTest
builderFactory, certFactoryBean, directoryServer, END_STATE_OUTPUT_ATTR_EXPR, END_STATE_OUTPUT_ATTR_NAME, externalContext, flowExecutor, idGenerator, IDP_ENTITY_ID, idpCredential, IP_ADDRESS_AUTHN_FLOW_ID, IP_ADDRESS_AUTHN_MAP_BEAN_NAME, KEYSTORE_FILE, LDIF_FILE, marshallerFactory, parserPool, request, response, SAML1_TRANSFORM_C14N_BEAN_NAME, SAML2_TRANSFORM_C14N_BEAN_NAME, SP_ACS_URL, SP_ENTITY_ID, SP_RELAY_STATE, spCredential, unmarshallerFactory
-
Fields inherited from class org.springframework.test.context.testng.AbstractTestNGSpringContextTests
applicationContext, logger
-
-
Constructor Summary
Constructors Constructor Description IntrospectionFlowTest()
-
Method Summary
-
Methods inherited from class net.shibboleth.idp.plugin.oidc.op.profile.flow.AbstractOidcClientAuthenticationFlowTest
buildPrivateKeyJwtAuth, buildPrivateKeyJwtAuth, buildSecretJwtAuth, buildSecretJwtAuth, buildSecretJwtAuth, claimsSetExpiredExp, claimsSetIssuedInTheFuture, claimsSetMissingAud, claimsSetMissingExp, claimsSetMissingIss, claimsSetMissingJti, claimsSetMissingSub, launchWithJwtAuthentication, populateClientAssertionParams, populateClientAssertionParams, setupRequestURI, testInvalidPrivateKeyESJWT_invalidSignerKey, testInvalidPrivateKeyESJWT_noTrustedKey, testInvalidPrivateKeyESJWT_wrongKey, testInvalidPrivateKeyJWT_expiredExp, testInvalidPrivateKeyJWT_issuedInTheFuture, testInvalidPrivateKeyJWT_missingAud, testInvalidPrivateKeyJWT_missingExp, testInvalidPrivateKeyJWT_missingIss, testInvalidPrivateKeyJWT_missingJti, testInvalidPrivateKeyJWT_missingSub, testInvalidPrivateKeyJWT_replayJti, testInvalidPrivateKeyJWTES256_algNotMatchingRegistered, testInvalidPrivateKeyJWTES384_algNotMatchingRegistered, testInvalidPrivateKeyJWTES512_algNotMatchingRegistered, testInvalidPrivateKeyJWTRS256_algNotMatchingRegistered, testInvalidPrivateKeyJWTRS384_algNotMatchingRegistered, testInvalidPrivateKeyJWTRS512_algNotMatchingRegistered, testInvalidPrivateKeyRSJWT_invalidSignerKey, testInvalidPrivateKeyRSJWT_noTrustedKey, testInvalidPrivateKeyRSJWT_wrongKey, testInvalidSecretJWT_expiredExp, testInvalidSecretJWT_invalidSecret, testInvalidSecretJWT_issuedInTheFuture, testInvalidSecretJWT_missingAud, testInvalidSecretJWT_missingExp, testInvalidSecretJWT_missingIss, testInvalidSecretJWT_missingJti, testInvalidSecretJWT_missingSub, testInvalidSecretJWT_replayJti, testInvalidSecretJWTHS256_algNotMatchingRegistered, testInvalidSecretJWTHS384_algNotMatchingRegistered, testInvalidSecretJWTHS512_algNotMatchingRegistered, testPlainJWT, testValidPrivateKeyJWTES256_ES256Registered, testValidPrivateKeyJWTES256_noRegisteredAlg, testValidPrivateKeyJWTES384_ES384Registered, testValidPrivateKeyJWTES384_noRegisteredAlg, testValidPrivateKeyJWTES512_ES512Registered, testValidPrivateKeyJWTES512_noRegisteredAlg, testValidPrivateKeyJWTRS256_noRegisteredAlg, testValidPrivateKeyJWTRS256_RS256Registered, testValidPrivateKeyJWTRS384_noRegisteredAlg, testValidPrivateKeyJWTRS384_RS384Registered, testValidPrivateKeyJWTRS512_noRegisteredAlg, testValidPrivateKeyJWTRS512_RS512Registered, testValidSecretJWTH384_noRegisteredAlg, testValidSecretJWTHS256_HS256Registered, testValidSecretJWTHS256_IssuerAudience, testValidSecretJWTHS256_noRegisteredAlg, testValidSecretJWTHS256_TokenEndpointAudience, testValidSecretJWTHS384_HS384Registered, testValidSecretJWTHS512_HS512Registered, testValidSecretJWTHS512_noRegisteredAlg, validClaimsSet, validClaimsSet
-
Methods inherited from class net.shibboleth.idp.plugin.oidc.op.profile.flow.AbstractOidcApiFlowTest
buildJWTToken, buildJWTToken, buildLegacyToken, buildLegacyToken, buildRefreshToken, buildRefreshToken
-
Methods inherited from class net.shibboleth.idp.plugin.oidc.op.profile.flow.AbstractOidcFlowTest
assertErrorCode, assertErrorDescriptionContains, buildJsonForLegacyToken, buildJWKSet, buildMetadataSkeleton, buildToken, buildToken, buildToken, createEncryptedJWT, createEncryptedJWT, createEncryptedJWT, createPrivateKeyJWT, createPrivateKeyJWT, createPrivateKeyJWT, createSecretJWT, createSecretJWT, generateNewKeyPair, generateNewKeyPair, getDataSealer, initializeECKey, initializeMocks, initializeThreadLocals, initKeys, loadCredential, loadEncryptionCredential, loadES384SigningCredential, loadES512SigningCredential, loadESSigningCredential, loadRSSigningCredential, parseErrorResponse, parseResponse, parseSuccessResponse, removeMetadata, setBasicAuth, setHttpFormRequest, setHttpFormRequest, setJsonRequest, setRequest, setRequest, storeConsent, storeMetadata, storeMetadata, storeMetadata, storeMetadata, storeMetadata, storeMetadata, storeMetadata, storeMetadata, storeMetadata, storeMetadata, storeMetadata, storeMetadataObject
-
Methods inherited from class net.shibboleth.idp.test.flows.AbstractFlowTest
assertFlowExecutionOutcome, assertFlowExecutionOutcome, assertFlowExecutionResult, assertProfileRequestContext, buildSOAP11Envelope, clearThreadLocals, getFlow, initializeFlowExecutor, initializeXMLObjectSupport, overrideEndStateOutput, overrideEndStateOutput, registerFlowsInParentRegistry, retrieveProfileRequestContext, setupDirectoryServer, teardownDirectoryServer
-
Methods inherited from class org.springframework.test.context.testng.AbstractTestNGSpringContextTests
run, setApplicationContext, springTestContextAfterTestClass, springTestContextAfterTestMethod, springTestContextBeforeTestClass, springTestContextBeforeTestMethod, springTestContextPrepareTestInstance
-
-
-
-
Field Detail
-
FLOW_ID
public static final String FLOW_ID
- See Also:
- Constant Field Values
-
scope
private com.nimbusds.oauth2.sdk.Scope scope
-
signingKey
@Autowired @Qualifier("testbed.DefaultRSSigningCredential") private net.shibboleth.oidc.security.credential.JWKCredential signingKey
-
storageService
@Autowired @Qualifier("shibboleth.StorageService") private StorageService storageService
-
revocationCache
@Autowired @Qualifier("shibboleth.oidc.RevocationCache") private RevocationCache revocationCache
-
-
Method Detail
-
tearDown
@AfterMethod public void tearDown() throws IOException- Throws:
IOException
-
testUntrustedClient
public void testUntrustedClient() throws NoSuchAlgorithmException, URISyntaxException, DataSealerException, ComponentInitializationException
-
testFailedAuthentication
public void testFailedAuthentication() throws IOException, NoSuchAlgorithmException, URISyntaxException, DataSealerException, ComponentInitializationException
-
testInvalidMessage
public void testInvalidMessage() throws IOException, NoSuchAlgorithmException, URISyntaxException, DataSealerException, ComponentInitializationException
-
testFailureUnverified
public void testFailureUnverified() throws IOException, NoSuchAlgorithmException, URISyntaxException, DataSealerException, ComponentInitializationException
-
testSuccessUnverified
public void testSuccessUnverified() throws IOException, NoSuchAlgorithmException, URISyntaxException, DataSealerException, ComponentInitializationException
-
testSuccess
public void testSuccess() throws IOException, NoSuchAlgorithmException, URISyntaxException, DataSealerException, ComponentInitializationException
-
testSuccessWithRefreshToken
public void testSuccessWithRefreshToken() throws IOException, NoSuchAlgorithmException, URISyntaxException, DataSealerException, ComponentInitializationException
-
testFailureWithChainExpiredRefreshToken
public void testFailureWithChainExpiredRefreshToken() throws IOException, NoSuchAlgorithmException, URISyntaxException, DataSealerException, ComponentInitializationException
-
testRevokedSingleToken
public void testRevokedSingleToken() throws IOException, NoSuchAlgorithmException, URISyntaxException, DataSealerException, ComponentInitializationException
-
testRevokedChain
public void testRevokedChain() throws IOException, NoSuchAlgorithmException, URISyntaxException, DataSealerException, ComponentInitializationException
-
testRevokedChainViaJti
public void testRevokedChainViaJti() throws IOException, NoSuchAlgorithmException, URISyntaxException, DataSealerException, ComponentInitializationException
-
testSuccessWithSamlMetadata
public void testSuccessWithSamlMetadata() throws NoSuchAlgorithmException, URISyntaxException, DataSealerException, ComponentInitializationException
-
testSuccessWithLegacyToken
public void testSuccessWithLegacyToken() throws IOException, NoSuchAlgorithmException, URISyntaxException, DataSealerException, ComponentInitializationException
-
testSuccessWithLegacyConsentToken
public void testSuccessWithLegacyConsentToken() throws IOException, NoSuchAlgorithmException, URISyntaxException, DataSealerException, ComponentInitializationException
-
testSuccessJWTNoAudience
public void testSuccessJWTNoAudience() throws com.nimbusds.jose.JOSEException, IOException- Throws:
com.nimbusds.jose.JOSEExceptionIOException
-
testSuccessJWTAudience
public void testSuccessJWTAudience() throws com.nimbusds.jose.JOSEException, IOException- Throws:
com.nimbusds.jose.JOSEExceptionIOException
-
testFailureJWTExpired
public void testFailureJWTExpired() throws com.nimbusds.jose.JOSEException, IOException- Throws:
com.nimbusds.jose.JOSEExceptionIOException
-
testFailureJWTNotYetValid
public void testFailureJWTNotYetValid() throws com.nimbusds.jose.JOSEException, IOException- Throws:
com.nimbusds.jose.JOSEExceptionIOException
-
testFailureJWTNotAuthorized
public void testFailureJWTNotAuthorized() throws com.nimbusds.jose.JOSEException, IOException- Throws:
com.nimbusds.jose.JOSEExceptionIOException
-
testFailureJWTWrongKey
public void testFailureJWTWrongKey() throws com.nimbusds.jose.JOSEException, IOException- Throws:
com.nimbusds.jose.JOSEExceptionIOException
-
testUnidentifiedToken
public void testUnidentifiedToken() throws IOException, NoSuchAlgorithmException, URISyntaxException, DataSealerException, ComponentInitializationException
-
launchWithJwtAuthentication
protected FlowExecutionResult launchWithJwtAuthentication(com.nimbusds.jwt.JWT jwt, com.nimbusds.jose.JWSAlgorithm algorithm, com.nimbusds.oauth2.sdk.auth.ClientAuthenticationMethod method, PublicKey publicKey) throws Exception
Description copied from class:AbstractOidcClientAuthenticationFlowTestLaunch the flow with the JWT client authentication method.- Specified by:
launchWithJwtAuthenticationin classAbstractOidcClientAuthenticationFlowTest- Parameters:
jwt- The JWT to be used for client authentication.algorithm- The algorithm to be used in the client authentication.method- The client authentication method.publicKey- The public key to store into the trusted metadata.- Returns:
- The flow execution result.
- Throws:
Exception
-
createRequestParameters
protected Map<String,String> createRequestParameters(String token, String id)
-
getErrorDetaisForJWTValidation
protected Pair<String,String> getErrorDetaisForJWTValidation()
Description copied from class:AbstractOidcClientAuthenticationFlowTestGet the pair of error code and error description for the error produced via eventEventIds.ACCESS_DENIED. This is abstract due to the fact that each endpoint may have its own mappings.- Specified by:
getErrorDetaisForJWTValidationin classAbstractOidcClientAuthenticationFlowTest- Returns:
- The pair of error code and error description.
-
assertSuccessResponse
protected void assertSuccessResponse(FlowExecutionResult result)
Description copied from class:AbstractOidcClientAuthenticationFlowTestVerify that the given result is a success response.- Specified by:
assertSuccessResponsein classAbstractOidcClientAuthenticationFlowTest- Parameters:
result- The flow execution result to be verified.
-
-