[java-idp-oidc] 02/02: JCOMOIDC-41 - Move OIDC Signature Validation resolvers and parameter classes to commons

Henri Mikkonen henri.mikkonen at iki.fi
Fri Jan 27 15:36:12 UTC 2023


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

hjmikkon 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=a92b99ba81a02398ace3929d201fba63322692fd

commit a92b99ba81a02398ace3929d201fba63322692fd
Author: Henri Mikkonen <henri.mikkonen at iki.fi>
AuthorDate: Fri Jan 27 17:35:12 2023 +0200

    JCOMOIDC-41 - Move OIDC Signature Validation resolvers and parameter classes to commons
    
    https://shibboleth.atlassian.net/browse/JCOMOIDC-41
---
 .../idp/service/relying-party/postconfig.xml       | 65 ++++++++++++++++++----
 1 file changed, 55 insertions(+), 10 deletions(-)

diff --git a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/service/relying-party/postconfig.xml b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/service/relying-party/postconfig.xml
index d2cef902..3e410f2a 100644
--- a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/service/relying-party/postconfig.xml
+++ b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/service/relying-party/postconfig.xml
@@ -59,7 +59,8 @@
         p:authorizeCodeLifetime="%{idp.oidc.authorizeCode.defaultLifetime:PT5M}"
         p:encodeConsentInTokens="%{idp.oidc.encodeConsentInTokens:false}"
         p:encodedAttributes="%{idp.oidc.encodedAttributes:%{idp.oidc.embeddedAttributes:}}"
-        p:deniedUserInfoAttributes="%{idp.oidc.deniedUserInfoAttributes:}" />
+        p:deniedUserInfoAttributes="%{idp.oidc.deniedUserInfoAttributes:}"
+        p:securityConfiguration-ref="%{idp.security.oidc.authorize.config:shibboleth.oidc.authorize.DefaultSecurityConfiguration}" />
 
     <bean id="OIDC.UserInfo" parent="AbstractOIDCProfile" lazy-init="true"
         class="net.shibboleth.oidc.profile.config.OIDCUserInfoConfiguration"
@@ -330,6 +331,11 @@
             <bean parent="shibboleth.MDDrivenBeanProperty" p:propertyName="authorizationCodeClaimsSetManipulationStrategy"
                 p:propertyType="#{T(java.util.function.BiFunction)}" />
         </property>
+        <property name="securityConfigurationLookupStrategy">
+            <bean parent="shibboleth.MDDrivenBeanProperty" p:propertyName="securityConfiguration"
+                p:propertyType="#{T(net.shibboleth.idp.profile.config.SecurityConfiguration)}"
+                p:defaultValue-ref="%{idp.security.oidc.authorize.config:shibboleth.oidc.authorize.DefaultSecurityConfiguration}" />
+        </property>
     </bean>
     
     <bean id="OIDC.UserInfo.MDDriven" parent="AbstractMDDrivenOIDCProfile" lazy-init="true"
@@ -721,7 +727,23 @@
             <ref bean="#{'%{idp.oidc.rodecrypt.config:shibboleth.oidc.DecryptionConfiguration}'.trim()}" />
         </property>
         <property name="jwtSignatureValidationConfiguration">
-            <ref bean="#{'%{idp.oidc.rovalid.config:shibboleth.oidc.SignatureValidationConfiguration}'.trim()}" />
+            <ref bean="#{'%{idp.oidc.tevalid.config:shibboleth.oidc.SignatureValidationConfiguration}'.trim()}" />
+        </property>
+    </bean>
+
+    <bean id="shibboleth.oidc.authorize.DefaultSecurityConfiguration"
+        class="net.shibboleth.oidc.profile.config.JSONSecurityConfiguration">
+        <property name="jwtSignatureSigningConfiguration">
+            <ref bean="#{'%{idp.oidc.signing.config:shibboleth.oidc.SigningConfiguration}'.trim()}" />
+        </property>
+        <property name="jwtEncryptionConfiguration">
+            <ref bean="#{'%{idp.oidc.encryption.config:shibboleth.oidc.EncryptionConfiguration}'.trim()}" />
+        </property>
+        <property name="jwtDecryptionConfiguration">
+            <ref bean="#{'%{idp.oidc.rodecrypt.config:shibboleth.oidc.DecryptionConfiguration}'.trim()}" />
+        </property>
+        <property name="jwtSignatureValidationConfiguration">
+            <ref bean="#{'%{idp.oidc.rovalid.config:shibboleth.oidc.ro.SignatureValidationConfiguration}'.trim()}" />
         </property>
     </bean>
         
@@ -851,7 +873,7 @@
         <constructor-arg>
             <list>
                 <bean id="CriterionCredentialResolver"
-                    class="net.shibboleth.oidc.security.credential.impl.CriterionCredentialResolver" />
+                    class="net.shibboleth.oidc.security.credential.impl.ClientSecretCriterionCredentialResolver" />
             </list>
         </constructor-arg>
     </bean>
@@ -871,14 +893,14 @@
                     </constructor-arg>
                 </bean>
                 <bean id="CriterionCredentialResolver"
-                    class="net.shibboleth.oidc.security.credential.impl.CriterionCredentialResolver" />
+                    class="net.shibboleth.oidc.security.credential.impl.ClientSecretCriterionCredentialResolver" />
             </list>
         </constructor-arg>
     </bean>
 
     <!-- Configuration for supported algorithms for request object signature validation. -->
     <bean id="shibboleth.oidc.SignatureValidationConfiguration" parent="shibboleth.oidc.BasicSignatureValidationConfiguration"
-        p:signatureTrustEngine-ref="ExplicitKeySignedJWTTrustEngine">
+        p:signatureTrustEngine-ref="ClientInformationTokenEndpointAuthJWTTrustEngine">
 <!--
         <property name="signatureAlgorithms">
             <list>
@@ -905,6 +927,11 @@
 -->
     </bean>
 
+    <!-- Configuration for supported algorithms for request object signature validation. -->
+    <bean id="shibboleth.oidc.ro.SignatureValidationConfiguration" parent="shibboleth.oidc.BasicSignatureValidationConfiguration"
+        p:signatureTrustEngine-ref="ClientInformationRequestObjectJWTTrustEngine">
+    </bean>
+
     <!-- A resolver for resolving trusted credentials to match against those resolved from the JWT -->
     <bean id="defaultSignedJWTTrustedCredentialResolver"
         class="net.shibboleth.oidc.security.credential.impl.ChainingJOSEObjectCredentialResolver">
@@ -915,7 +942,7 @@
                     p:remoteJwkSetCache-ref="shibboleth.oidc.RemoteJwkSetCache" 
                     p:keyFetchInterval="%{idp.oidc.provider.keyfetch.interval:PT30M}"/>
                 <bean id="CriterionCredentialResolver"
-                    class="net.shibboleth.oidc.security.credential.impl.CriterionCredentialResolver" />
+                    class="net.shibboleth.oidc.security.credential.impl.ClientSecretCriterionCredentialResolver" />
             </list>
         </constructor-arg>
     </bean>
@@ -924,12 +951,30 @@
     <bean id="defaultSignedJWTJOSEHeaderCredentialResolver"
         class="net.shibboleth.oidc.security.credential.impl.BasicJOSEObjectCredentialResolver" />
 
-    <bean id="ExplicitKeySignedJWTTrustEngine"
-        class="net.shibboleth.oidc.security.impl.ExplicitKeySignedJWTTrustEngine"
+    <bean id="ClientInformationTokenEndpointAuthJWTTrustEngine"
+        class="net.shibboleth.oidc.security.impl.ClientInformationJWTTrustEngine"
         c:resolver-ref="defaultSignedJWTTrustedCredentialResolver"
-        c:JOSEObjectResolver-ref="defaultSignedJWTJOSEHeaderCredentialResolver" />
+        c:JOSEObjectResolver-ref="defaultSignedJWTJOSEHeaderCredentialResolver">
+        <constructor-arg name="signatureAlgorithmLookupStrategy">
+            <bean
+                class="net.shibboleth.oidc.profile.config.navigate.ClientInformationStringValueLookupFunction"
+                c:keyName="token_endpoint_auth_signing_alg" />
+        </constructor-arg>
+        <constructor-arg name="defaultAlgorithmValue" value="" />
+    </bean>
+
+    <bean id="ClientInformationRequestObjectJWTTrustEngine"
+        class="net.shibboleth.oidc.security.impl.ClientInformationJWTTrustEngine"
+        c:resolver-ref="defaultSignedJWTTrustedCredentialResolver"
+        c:JOSEObjectResolver-ref="defaultSignedJWTJOSEHeaderCredentialResolver">
+        <constructor-arg name="signatureAlgorithmLookupStrategy">
+            <bean
+                class="net.shibboleth.oidc.profile.config.navigate.ClientInformationStringValueLookupFunction"
+                c:keyName="request_object_signing_alg" />
+        </constructor-arg>
+        <constructor-arg name="defaultAlgorithmValue" value="" />
+    </bean>
 
-    
     <!--  Configuration for publishing key set. -->
     <bean id="shibboleth.oidc.PublishKeySetSecurityConfiguration"
         class="net.shibboleth.oidc.profile.config.JSONSecurityConfiguration">

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


More information about the commits mailing list