]> git.aero2k.de Git - tmp/jakarta-migration.git/commitdiff
Allow overriding SAML asserting party metadata with manual config.
authorRay Lee <ray.lee@lyrasis.org>
Wed, 18 Oct 2023 03:34:48 +0000 (23:34 -0400)
committerRay Lee <ray.lee@lyrasis.org>
Wed, 18 Oct 2023 03:34:48 +0000 (23:34 -0400)
services/common/src/main/java/org/collectionspace/services/common/security/SecurityConfig.java
services/config/src/main/resources/service-config.xsd

index d583079f22389ec60a912da58353629ca678599a..fc7403106f076c062f26fddd565fedb5ceefc9c8 100644 (file)
@@ -785,15 +785,22 @@ public class SecurityConfig {
                                        registrationBuilder = RelyingPartyRegistrations
                                                .fromMetadataLocation(relyingPartyConfig.getMetadata().getLocation())
                                                .registrationId(relyingPartyConfig.getId());
-                               } else {
-                                       final AssertingPartyDetailsType assertingPartyDetails = relyingPartyConfig.getAssertingPartyDetails();
-
+                               }
+                               else {
                                        registrationBuilder = RelyingPartyRegistration
-                                               .withRegistrationId(relyingPartyConfig.getId())
+                                               .withRegistrationId(relyingPartyConfig.getId());
+                               }
+
+                               final AssertingPartyDetailsType assertingPartyDetails = relyingPartyConfig.getAssertingPartyDetails();
+
+                               if (assertingPartyDetails != null) {
+                                       registrationBuilder
                                                .assertingPartyDetails(new Consumer<AssertingPartyDetails.Builder>() {
                                                        @Override
                                                        public void accept(AssertingPartyDetails.Builder builder) {
-                                                               builder.entityId(assertingPartyDetails.getEntityId());
+                                                               if (assertingPartyDetails.getEntityId() != null) {
+                                                                       builder.entityId(assertingPartyDetails.getEntityId());
+                                                               }
 
                                                                if (assertingPartyDetails.isWantAuthnRequestsSigned() != null) {
                                                                        builder.wantAuthnRequestsSigned(assertingPartyDetails.isWantAuthnRequestsSigned());
index 8bdf0b6b3c0efcf80d890db96fbd176af4a8b1e0..051f37d42e9cd4a66ba39244f0f5015eee0e30ee 100644 (file)
 
     <xs:complexType name="AssertingPartyDetailsType">
         <xs:sequence>
-            <xs:element name="entity-id" type="xs:string" minOccurs="1" maxOccurs="1" />
+            <xs:element name="entity-id" type="xs:string" minOccurs="0" maxOccurs="1" />
             <xs:element name="want-authn-requests-signed" type="xs:boolean" minOccurs="0" maxOccurs="1" />
             <xs:element name="signing-algorithms" type="SigningAlgorithmsType" minOccurs="0" maxOccurs="1" />