[java-oidc-common] branch dev/JCOMOIDC-41 updated: Simplify JWT configuration classes
Phil Smart
philip.smart at jisc.ac.uk
Tue Sep 27 15:06:22 UTC 2022
This is an automated email from the git hooks/post-receive script.
philsmart pushed a commit to branch dev/JCOMOIDC-41
in repository java-oidc-common.
View the commit online:
http://git.shibboleth.net/view/?p=java-oidc-common.git;a=commit;h=3a9f7ebbe37ccf5d446723f143bb1138d43e2c26
The following commit(s) were added to refs/heads/dev/JCOMOIDC-41 by this push:
new 3a9f7eb Simplify JWT configuration classes
3a9f7eb is described below
commit 3a9f7ebbe37ccf5d446723f143bb1138d43e2c26
Author: Phil Smart <philip.smart at jisc.ac.uk>
AuthorDate: Tue Sep 27 16:06:16 2022 +0100
Simplify JWT configuration classes
Different tokens used to have different configurations. These have been
simplified into more general encryption and signature configurations.
This is slightly less flexible, but far more sane. Could be reviewed
later.
---
.../profile/config/OIDCSecurityConfiguration.java | 245 +++++++++------------
1 file changed, 105 insertions(+), 140 deletions(-)
diff --git a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCSecurityConfiguration.java b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCSecurityConfiguration.java
index 35d0c66..d99b182 100644
--- a/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCSecurityConfiguration.java
+++ b/oidc-common-profile-api/src/main/java/net/shibboleth/oidc/profile/config/OIDCSecurityConfiguration.java
@@ -32,101 +32,43 @@ import net.shibboleth.oidc.security.JWTSignatureValidationConfiguration;
* Class extends SecurityConfiguration to support separate configuration for various encryption and signature
* validation operations.
*/
-//TODO split packages for SignatureValidationConfiguration?
public class OIDCSecurityConfiguration extends SecurityConfiguration {
-
- /** Configuration used when decrypting request object information. */
+
+ /** Configuration used when decrypting request object information. */
//TODO Used by OP only? but should be JWT decrypt config
@Nullable
private EncryptionConfiguration requestObjectDecryptConfig;
- /** Configuration used when encrypting request object information. */
- @Nullable
- private JWTEncryptionConfiguration requestObjectEncryptionConfig;
-
/** Configuration used when validating request object information. */
- //TODO JWT version of these?
@Nullable
+ //TODO Used by OP only? JWT version of these?
private SignatureSigningConfiguration requestObjectSignatureValidationConfig;
-
- /** Configuration used when singing request objects. */
- @Nullable
- private JWTSignatureSigningConfiguration requestObjectSignatureSigningConfig;
/** Configuration used when validating token endpoint authentication JWT signatures. */
+ //TODO Used by OP only? JWT version of these?
@Nullable
private SignatureSigningConfiguration tokenEndpointJwtSignatureValidationConfig;
- /** Configuration used when validating id_token JWT signatures. */
- @Nullable
- private JWTSignatureValidationConfiguration idTokenJwtSignatureValidationConfig;
-
- /** Configuration used when decrypting id_tokens. */
+ /** Configuration used when decrypting JWE tokens. */
@Nullable
- private JWTDecryptionConfiguration idTokenJwtDecryptConfig;
+ private JWTDecryptionConfiguration jwtDecryptConfig;
- /** Configuration used when decrypting UserInfo tokens. */
+ /** Configuration used when encrypting JWE tokens. */
@Nullable
- private JWTDecryptionConfiguration userInfoJwtDecryptConfig;
+ private JWTEncryptionConfiguration jwtEncryptConfig;
- /** Configuration used when validating UserInfo JWT signatures. */
+ /** Configuration used when JWS tokens. */
@Nullable
- private JWTSignatureValidationConfiguration userInfoTokenJwtSignatureValidationConfig;
+ private JWTSignatureSigningConfiguration jwtSignatureSigningConfig;
- /**
- * Set the configuration used to decrypt id_tokens.
- *
- * @param config configuration used when decrypting id_tokens, or null
- */
- public void setIdTokenJwtDecryptionConfiguration(@Nullable final JWTDecryptionConfiguration config) {
- idTokenJwtDecryptConfig = config;
- }
-
- /**
- * Get the configuration used when decrypting id_tokens.
- *
- * @return configuration used when decrypting id_tokens, or null
- */
- @Nullable public JWTDecryptionConfiguration getIdtokenJwtDecryptionConfiguration() {
- return idTokenJwtDecryptConfig;
- }
- /**
- * Set the configuration used to decrypt UserInfo JWTs.
- *
- * @param config configuration used when decrypting UserInfo JWTs, or null
- */
- public void setUserInfoJwtDecryptionConfiguration(@Nullable final JWTDecryptionConfiguration config) {
- userInfoJwtDecryptConfig = config;
- }
+ /** Configuration used when validating JWS signatures. */
+ @Nullable
+ private JWTSignatureValidationConfiguration jwtSignatureValidationConfig;
- /**
- * Get the configuration used when encrypting RequestObject JWTs.
- *
- * @return configuration used when decrypting id_tokens, or null
- */
- @Nullable public JWTEncryptionConfiguration getRequestObjectEncryptionConfig() {
- return requestObjectEncryptionConfig;
- }
- /**
- * Set the configuration used to encrypt the RequestObject JWT.
- *
- * @param config configuration used when encrypting RequestObject JWTs, or null
- */
- public void setRequestObjectEncryptionConfiguration(@Nullable final JWTEncryptionConfiguration config) {
- requestObjectEncryptionConfig = config;
- }
+ //TODO These use the old style config support by the OP
- /**
- * Get the configuration used when decrypting UserInfo JWTs.
- *
- * @return configuration used when decrypting UserInfo JWTs, or null
- */
- @Nullable public JWTDecryptionConfiguration getUserInfoJwtDecryptionConfiguration() {
- return userInfoJwtDecryptConfig;
- }
-
/**
* Get the configuration used when decrypting request object information.
*
@@ -136,112 +78,135 @@ public class OIDCSecurityConfiguration extends SecurityConfiguration {
public EncryptionConfiguration getRequestObjectDecryptionConfiguration() {
return requestObjectDecryptConfig;
}
-
+
+ /**
+ * Set the configuration used when decrypting request object information.
+ *
+ * @param config configuration used when decrypting request object information, or null
+ */
+ public void setRequestObjectDecryptionConfiguration(@Nullable final EncryptionConfiguration config) {
+ requestObjectDecryptConfig = config;
+ }
+
+ /**
+ * Get the configuration used when validating request object information.
+ *
+ * @return configuration used when validating request object information, or null
+ */
+ @Nullable
+ public SignatureSigningConfiguration getRequestObjectSignatureValidationConfiguration() {
+ return requestObjectSignatureValidationConfig;
+ }
+
+ /**
+ * Set the configuration used when validating request object information.
+ *
+ * @param config used when validating request object information, or null
+ */
+ public void setRequestObjectSignatureValidationConfiguration(@Nullable final SignatureSigningConfiguration config) {
+ requestObjectSignatureValidationConfig = config;
+ }
+
+ /**
+ * Get the configuration used when validating token endpoint authentication JWT signatures.
+ *
+ * @return configuration used when validating token endpoint authentication JWT signatures, or null
+ */
+ @Nullable
+ public SignatureSigningConfiguration getTokenEndpointJwtSignatureValidationConfiguration() {
+ return tokenEndpointJwtSignatureValidationConfig;
+ }
+
+ /**
+ * Set the configuration used when validating token endpoint authentication JWT signatures.
+ *
+ * @param config used when validating token endpoint authentication JWT signatures, or null
+ */
+ public void setTokenEndpointJwtSignatureValidationConfiguration(
+ @Nullable final SignatureSigningConfiguration config) {
+ tokenEndpointJwtSignatureValidationConfig = config;
+ }
+
+
+ // --- END
+
/**
- * Set the configuration used when decrypting request object information.
+ * Set the configuration used to decrypt JWE tokens.
*
- * @param config configuration used when decrypting request object information, or null
+ * @param config configuration used when decrypting JWE tokens, or null
*/
- public void setRequestObjectDecryptionConfiguration(@Nullable final EncryptionConfiguration config) {
- requestObjectDecryptConfig = config;
+ public void setJwtDecryptionConfiguration(@Nullable final JWTDecryptionConfiguration config) {
+ jwtDecryptConfig = config;
}
-
+
/**
- * Get the configuration used when signing request object information.
+ * Get the configuration used when decrypting JWE tokens.
*
- * @return configuration used when signing request object information, or null
+ * @return configuration used when decrypting id_tokens, or null
*/
- @Nullable
- public JWTSignatureSigningConfiguration getRequestObjectSignatureSigningConfiguration() {
- return requestObjectSignatureSigningConfig;
+ @Nullable public JWTDecryptionConfiguration getJwtDecryptionConfiguration() {
+ return jwtDecryptConfig;
}
-
+
/**
- * Set the configuration used when signing request object information.
+ * Set the configuration used to encrypt JWE tokens.
*
- * @param config used when signing request object information, or null
+ * @param config configuration used when encrypting JWE tokens, or null
*/
- public void setRequestObjectSignatureSigningConfiguration(@Nullable final JWTSignatureSigningConfiguration config) {
- requestObjectSignatureSigningConfig = config;
+ public void setjwtEncryptionConfiguration(@Nullable final JWTEncryptionConfiguration config) {
+ jwtEncryptConfig = config;
}
/**
- * Get the configuration used when validating request object information.
+ * Get the configuration used when encrypting JWE tokens.
*
- * @return configuration used when validating request object information, or null
+ * @return configuration used when encrypting JWE tokens, or null
*/
- @Nullable
- public SignatureSigningConfiguration getRequestObjectSignatureValidationConfiguration() {
- return requestObjectSignatureValidationConfig;
+ public JWTEncryptionConfiguration getJwtEncryptionConfiguration() {
+ return jwtEncryptConfig;
}
-
+
/**
- * Set the configuration used when validating request object information.
+ * Set the configuration used when signing JWS tokens.
*
- * @param config used when validating request object information, or null
+ * @param config used when signing JWS tokens, or null
*/
- public void setRequestObjectSignatureValidationConfiguration(@Nullable final SignatureSigningConfiguration config) {
- requestObjectSignatureValidationConfig = config;
+ public void setJwtSignatureSigningConfiguration(@Nullable final JWTSignatureSigningConfiguration config) {
+ jwtSignatureSigningConfig = config;
}
+
/**
- * Get the configuration used when validating token endpoint authentication JWT signatures.
+ * Get the configuration used when signing JWS tokens.
*
- * @return configuration used when validating token endpoint authentication JWT signatures, or null
+ * @return configuration used when signing JWS tokens, or null
*/
@Nullable
- public SignatureSigningConfiguration getTokenEndpointJwtSignatureValidationConfiguration() {
- return tokenEndpointJwtSignatureValidationConfig;
- }
-
- /**
- * Set the configuration used when validating token endpoint authentication JWT signatures.
- *
- * @param config used when validating token endpoint authentication JWT signatures, or null
- */
- public void setTokenEndpointJwtSignatureValidationConfiguration(
- @Nullable final SignatureSigningConfiguration config) {
- tokenEndpointJwtSignatureValidationConfig = config;
+ public JWTSignatureSigningConfiguration getJwtSignatureSigningConfiguration() {
+ return jwtSignatureSigningConfig;
}
/**
- * Get the configuration used when validating id_token JWT signatures.
+ * Set the configuration used when validating JWS tokens.
*
- * @return configuration used when validating id_token JWT signatures, or null
+ * @param config used when validating JWS tokens, or null
*/
- @Nullable
- public JWTSignatureValidationConfiguration getIdTokenJwtSignatureValidationConfiguration() {
- return idTokenJwtSignatureValidationConfig;
+ public void setJwtSignatureValidationConfiguration(@Nullable final JWTSignatureValidationConfiguration config) {
+ jwtSignatureValidationConfig = config;
}
+
/**
- * Set the configuration used when validating id_token JWT signatures.
+ * Get the configuration used when validating JWS tokens.
*
- * @param config configuration used when validating id_token JWT signatures, or null
- */
- public void setIdTokenJwtSignatureValidationConfiguration(
- @Nullable final JWTSignatureValidationConfiguration config) {
- idTokenJwtSignatureValidationConfig = config;
- }
-
- /**
- * Get the configuration used when validating id_token JWT signatures.
- *
- * @return configuration used when validating id_token JWT signatures, or null
+ * @return configuration used when validating JWS tokens, or null
*/
@Nullable
- public JWTSignatureValidationConfiguration getUserInfoTokenJwtSignatureValidationConfiguration() {
- return userInfoTokenJwtSignatureValidationConfig;
+ public JWTSignatureValidationConfiguration getJwtSignatureValidationConfiguration() {
+ return jwtSignatureValidationConfig;
}
- /**
- * Set the configuration used when validating id_token JWT signatures.
- *
- * @param config configuration used when validating id_token JWT signatures, or null
- */
- public void setUserInfoTokenJwtSignatureValidationConfiguration(
- @Nullable final JWTSignatureValidationConfiguration config) {
- userInfoTokenJwtSignatureValidationConfig = config;
- }
+
+
}
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list