CLOUDSTACK-8701: Add administrative contact block as per SAML IDP expectations
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
diff --git a/plugins/user-authenticators/saml2/src/org/apache/cloudstack/api/command/GetServiceProviderMetaDataCmd.java b/plugins/user-authenticators/saml2/src/org/apache/cloudstack/api/command/GetServiceProviderMetaDataCmd.java
index bed594f..80d38fd 100644
--- a/plugins/user-authenticators/saml2/src/org/apache/cloudstack/api/command/GetServiceProviderMetaDataCmd.java
+++ b/plugins/user-authenticators/saml2/src/org/apache/cloudstack/api/command/GetServiceProviderMetaDataCmd.java
@@ -205,16 +205,28 @@
spSSODescriptor.addSupportedProtocol(SAMLConstants.SAML20P_NS);
spEntityDescriptor.getRoleDescriptors().add(spSSODescriptor);
- ContactPerson contactPerson = new ContactPersonBuilder().buildObject();
+ // Add technical contact
GivenName givenName = new GivenNameBuilder().buildObject();
givenName.setName(spMetadata.getContactPersonName());
EmailAddress emailAddress = new EmailAddressBuilder().buildObject();
emailAddress.setAddress(spMetadata.getContactPersonEmail());
+ ContactPerson contactPerson = new ContactPersonBuilder().buildObject();
contactPerson.setType(ContactPersonTypeEnumeration.TECHNICAL);
contactPerson.setGivenName(givenName);
contactPerson.getEmailAddresses().add(emailAddress);
spEntityDescriptor.getContactPersons().add(contactPerson);
+ // Add administrative/support contact
+ GivenName givenNameAdmin = new GivenNameBuilder().buildObject();
+ givenNameAdmin.setName(spMetadata.getContactPersonName());
+ EmailAddress emailAddressAdmin = new EmailAddressBuilder().buildObject();
+ emailAddressAdmin.setAddress(spMetadata.getContactPersonEmail());
+ ContactPerson contactPersonAdmin = new ContactPersonBuilder().buildObject();
+ contactPersonAdmin.setType(ContactPersonTypeEnumeration.ADMINISTRATIVE);
+ contactPersonAdmin.setGivenName(givenNameAdmin);
+ contactPersonAdmin.getEmailAddresses().add(emailAddressAdmin);
+ spEntityDescriptor.getContactPersons().add(contactPersonAdmin);
+
Organization organization = new OrganizationBuilder().buildObject();
OrganizationName organizationName = new OrganizationNameBuilder().buildObject();
organizationName.setName(new LocalizedString(spMetadata.getOrganizationName(), Locale.getDefault().getLanguage()));