[java-idp-oidc] branch main updated: Test refactoring, moved some helper methods to be better accessible.

Scott Cantor cantor.2 at osu.edu
Thu Dec 30 20:31:32 UTC 2021


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

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

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

The following commit(s) were added to refs/heads/main by this push:
     new 8881c47c Test refactoring, moved some helper methods to be better accessible.
8881c47c is described below

commit 8881c47c53cb7ab91b9c633ea1cc58ac93dcbfb2
Author: Henri Mikkonen <henri.mikkonen at iki.fi>
AuthorDate: Thu Dec 30 16:42:31 2021 +0200

    Test refactoring, moved some helper methods to be better accessible.
---
 .../AbstractOidcClientAuthenticationFlowTest.java  | 32 +++++-----------------
 .../oidc/op/profile/flow/AbstractOidcFlowTest.java | 24 ++++++++++++++++
 2 files changed, 31 insertions(+), 25 deletions(-)

diff --git a/idp-oidc-extension-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/AbstractOidcClientAuthenticationFlowTest.java b/idp-oidc-extension-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/AbstractOidcClientAuthenticationFlowTest.java
index d497e21a..2fe446fa 100644
--- a/idp-oidc-extension-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/AbstractOidcClientAuthenticationFlowTest.java
+++ b/idp-oidc-extension-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/AbstractOidcClientAuthenticationFlowTest.java
@@ -35,9 +35,6 @@ import org.testng.annotations.Test;
 
 import com.nimbusds.jose.JOSEException;
 import com.nimbusds.jose.JWSAlgorithm;
-import com.nimbusds.jose.JWSHeader;
-import com.nimbusds.jose.crypto.MACSigner;
-import com.nimbusds.jose.crypto.RSASSASigner;
 import com.nimbusds.jwt.JWTClaimsSet;
 import com.nimbusds.jwt.SignedJWT;
 import com.nimbusds.oauth2.sdk.auth.ClientAuthenticationMethod;
@@ -84,21 +81,6 @@ public abstract class AbstractOidcClientAuthenticationFlowTest extends AbstractO
         requestParameters.put("client_assertion_type", "urn:ietf:params:oauth:client-assertion-type:jwt-bearer");
     }
 
-    protected SignedJWT createSecretJWT(final JWTClaimsSet claimsSet, final String clientSecret)
-            throws JOSEException {
-        final SignedJWT jwt = new SignedJWT(new JWSHeader(JWSAlgorithm.HS256), claimsSet);
-        final MACSigner signer = new MACSigner(clientSecret);
-        jwt.sign(signer);
-        return jwt;
-    }
-    
-    protected SignedJWT createPrivateKeyJWT(final JWTClaimsSet claimsSet) throws JOSEException {
-        final SignedJWT jwt = new SignedJWT(new JWSHeader(JWSAlgorithm.RS256), claimsSet);
-        final RSASSASigner signer = new RSASSASigner(rsaPrivateKey);
-        jwt.sign(signer);
-        return jwt;
-    }
-    
     @Test
     public void testInvalidSecretJWT_missingSub() throws Exception {
         final SignedJWT jwt = createSecretJWT(claimsSetMissingSub(), clientSecret);
@@ -164,7 +146,7 @@ public abstract class AbstractOidcClientAuthenticationFlowTest extends AbstractO
 
     @Test
     public void testInvalidPrivateKeyJWT_missingSub() throws Exception {
-        final SignedJWT jwt = createPrivateKeyJWT(claimsSetMissingSub());
+        final SignedJWT jwt = createPrivateKeyJWT(claimsSetMissingSub(), rsaPrivateKey);
         final FlowExecutionResult result = launchWithJwtAuthentication(jwt, JWSAlgorithm.RS256,
                 ClientAuthenticationMethod.PRIVATE_KEY_JWT);
         assertErrorCode(result, "invalid_request");
@@ -173,7 +155,7 @@ public abstract class AbstractOidcClientAuthenticationFlowTest extends AbstractO
 
     @Test
     public void testInvalidPrivateKeyJWT_missingIss() throws Exception {
-        final SignedJWT jwt = createPrivateKeyJWT(claimsSetMissingIss());
+        final SignedJWT jwt = createPrivateKeyJWT(claimsSetMissingIss(), rsaPrivateKey);
         final FlowExecutionResult result = launchWithJwtAuthentication(jwt, JWSAlgorithm.RS256,
                 ClientAuthenticationMethod.PRIVATE_KEY_JWT);
         assertErrorCode(result, "invalid_request");
@@ -182,7 +164,7 @@ public abstract class AbstractOidcClientAuthenticationFlowTest extends AbstractO
 
     @Test
     public void testInvalidPrivateKeyJWT_missingAud() throws Exception {
-        final SignedJWT jwt = createPrivateKeyJWT(claimsSetMissingAud());
+        final SignedJWT jwt = createPrivateKeyJWT(claimsSetMissingAud(), rsaPrivateKey);
         final FlowExecutionResult result = launchWithJwtAuthentication(jwt, JWSAlgorithm.RS256,
                 ClientAuthenticationMethod.PRIVATE_KEY_JWT);
         assertErrorCode(result, "invalid_request");
@@ -191,7 +173,7 @@ public abstract class AbstractOidcClientAuthenticationFlowTest extends AbstractO
 
     @Test
     public void testInvalidPrivateKeyJWT_missingExp() throws Exception {
-        final SignedJWT jwt = createPrivateKeyJWT(claimsSetMissingExp());
+        final SignedJWT jwt = createPrivateKeyJWT(claimsSetMissingExp(), rsaPrivateKey);
         final FlowExecutionResult result = launchWithJwtAuthentication(jwt, JWSAlgorithm.RS256,
                 ClientAuthenticationMethod.PRIVATE_KEY_JWT);
         assertErrorCode(result, "invalid_request");
@@ -200,7 +182,7 @@ public abstract class AbstractOidcClientAuthenticationFlowTest extends AbstractO
 
     @Test
     public void testInvalidPrivateKeyJWT_expiredExp() throws Exception {
-        final SignedJWT jwt = createPrivateKeyJWT(claimsSetExpiredExp());
+        final SignedJWT jwt = createPrivateKeyJWT(claimsSetExpiredExp(), rsaPrivateKey);
         final FlowExecutionResult result = launchWithJwtAuthentication(jwt, JWSAlgorithm.RS256,
                 ClientAuthenticationMethod.PRIVATE_KEY_JWT);
         assertErrorCode(result, getErrorDetaisForJWTValidation().getFirst());
@@ -209,7 +191,7 @@ public abstract class AbstractOidcClientAuthenticationFlowTest extends AbstractO
 
     @Test
     public void testInvalidPrivateKeyJWT_issuedInTheFuture() throws Exception {
-        final SignedJWT jwt = createPrivateKeyJWT(claimsSetIssuedInTheFuture());
+        final SignedJWT jwt = createPrivateKeyJWT(claimsSetIssuedInTheFuture(), rsaPrivateKey);
         final FlowExecutionResult result = launchWithJwtAuthentication(jwt, JWSAlgorithm.RS256,
                 ClientAuthenticationMethod.PRIVATE_KEY_JWT);
         assertErrorCode(result, getErrorDetaisForJWTValidation().getFirst());
@@ -218,7 +200,7 @@ public abstract class AbstractOidcClientAuthenticationFlowTest extends AbstractO
 
     @Test
     public void testInvalidPrivateKeyJWT_missingJti() throws Exception {
-        final SignedJWT jwt = createPrivateKeyJWT(claimsSetMissingJti());
+        final SignedJWT jwt = createPrivateKeyJWT(claimsSetMissingJti(), rsaPrivateKey);
         final FlowExecutionResult result = launchWithJwtAuthentication(jwt, JWSAlgorithm.RS256,
                 ClientAuthenticationMethod.PRIVATE_KEY_JWT);
         assertErrorCode(result, getErrorDetaisForJWTValidation().getFirst());
diff --git a/idp-oidc-extension-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/AbstractOidcFlowTest.java b/idp-oidc-extension-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/AbstractOidcFlowTest.java
index e0ebd7d6..7feb922d 100644
--- a/idp-oidc-extension-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/AbstractOidcFlowTest.java
+++ b/idp-oidc-extension-impl/src/test/java/net/shibboleth/idp/plugin/oidc/op/profile/flow/AbstractOidcFlowTest.java
@@ -20,6 +20,7 @@ package net.shibboleth.idp.plugin.oidc.op.profile.flow;
 import java.io.IOException;
 import java.net.URI;
 import java.net.URISyntaxException;
+import java.security.interfaces.RSAPrivateKey;
 import java.security.interfaces.RSAPublicKey;
 import java.time.Instant;
 import java.util.Arrays;
@@ -41,9 +42,15 @@ import org.springframework.webflow.test.MockExternalContext;
 import org.testng.Assert;
 import org.testng.annotations.BeforeMethod;
 
+import com.nimbusds.jose.JOSEException;
 import com.nimbusds.jose.JWSAlgorithm;
+import com.nimbusds.jose.JWSHeader;
+import com.nimbusds.jose.crypto.MACSigner;
+import com.nimbusds.jose.crypto.RSASSASigner;
 import com.nimbusds.jose.jwk.JWKSet;
 import com.nimbusds.jose.jwk.RSAKey;
+import com.nimbusds.jwt.JWTClaimsSet;
+import com.nimbusds.jwt.SignedJWT;
 import com.nimbusds.oauth2.sdk.ErrorResponse;
 import com.nimbusds.oauth2.sdk.GrantType;
 import com.nimbusds.oauth2.sdk.Response;
@@ -248,4 +255,21 @@ public abstract class AbstractOidcFlowTest extends AbstractFlowTest {
                 "\"iat\":" + Instant.now().getEpochSecond() + "," +
                 "\"jti\":\"" + idGenerator.generateIdentifier() + "\"}";
     }
+
+    protected static SignedJWT createSecretJWT(final JWTClaimsSet claimsSet, final String clientSecret)
+            throws JOSEException {
+        final SignedJWT jwt = new SignedJWT(new JWSHeader(JWSAlgorithm.HS256), claimsSet);
+        final MACSigner signer = new MACSigner(clientSecret);
+        jwt.sign(signer);
+        return jwt;
+    }
+    
+    protected static SignedJWT createPrivateKeyJWT(final JWTClaimsSet claimsSet, final RSAPrivateKey rsaPrivateKey)
+            throws JOSEException {
+        final SignedJWT jwt = new SignedJWT(new JWSHeader(JWSAlgorithm.RS256), claimsSet);
+        final RSASSASigner signer = new RSASSASigner(rsaPrivateKey);
+        jwt.sign(signer);
+        return jwt;
+    }    
+
 }

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


More information about the commits mailing list