diff --git a/backend/src/main/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataSourcesUiDefinitionController.groovy b/backend/src/main/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataSourcesUiDefinitionController.groovy index 60cd362cf..a2b13e8e1 100644 --- a/backend/src/main/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataSourcesUiDefinitionController.groovy +++ b/backend/src/main/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataSourcesUiDefinitionController.groovy @@ -53,8 +53,8 @@ class MetadataSourcesUiDefinitionController { def parsedJson = jacksonObjectMapper.readValue(url, Map) jsonSchemaBuilderService.hideServiceEnabledFromNonAdmins(parsedJson) jsonSchemaBuilderService.addReleaseAttributesToJson(parsedJson['properties']['attributeRelease']['items']) - jsonSchemaBuilderService.addRelyingPartyOverridesToJson(parsedJson['properties']['relyingPartyOverrides']) - jsonSchemaBuilderService.addRelyingPartyOverridesCollectionDefinitionsToJson(parsedJson["definitions"]) + jsonSchemaBuilderService.addRelyingPartyOverridesToJson(parsedJson['properties']['relyingPartyOverrides'], protocol.toLowerCase()) + jsonSchemaBuilderService.addRelyingPartyOverridesCollectionDefinitionsToJson(parsedJson["definitions"], protocol.toLowerCase()) return ResponseEntity.ok(parsedJson) } catch (IOException e) { diff --git a/backend/src/main/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JsonSchemaBuilderService.groovy b/backend/src/main/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JsonSchemaBuilderService.groovy index 5109ee46c..d5084e21a 100644 --- a/backend/src/main/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JsonSchemaBuilderService.groovy +++ b/backend/src/main/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JsonSchemaBuilderService.groovy @@ -42,8 +42,15 @@ class JsonSchemaBuilderService { } void addRelyingPartyOverridesToJson(Object json) { + addRelyingPartyOverridesToJson(json, "saml") + } + + void addRelyingPartyOverridesToJson(Object json, String protocol) { def properties = [:] - customPropertiesConfiguration.getOverrides().each { + customPropertiesConfiguration.getOverrides().stream().filter { + it -> it.protocol.contains(protocol) + }.each { + if (it.protocol) def property if (it['displayType'] == 'list' || it['displayType'] == 'set' || it['displayType'] == 'selection_list') { property = [$ref: '#/definitions/' + it['name']] @@ -61,8 +68,12 @@ class JsonSchemaBuilderService { } void addRelyingPartyOverridesCollectionDefinitionsToJson(Object json) { + addRelyingPartyOverridesCollectionDefinitionsToJson(json, "saml") + } + + void addRelyingPartyOverridesCollectionDefinitionsToJson(Object json, String protocol) { customPropertiesConfiguration.getOverrides().stream().filter { - it -> it['displayType'] && (it['displayType'] == 'list' || it['displayType'] == 'set' || it['displayType'] == 'selection_list') + it -> it.protocol.contains(protocol) && it['displayType'] && (it['displayType'] == 'list' || it['displayType'] == 'set' || it['displayType'] == 'selection_list') }.each { def definition = [title : it['displayName'], description: it['helpText'], diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/CustomEntityAttributeDefinition.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/CustomEntityAttributeDefinition.java index 6e7ced3e2..2c5c7e360 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/CustomEntityAttributeDefinition.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/CustomEntityAttributeDefinition.java @@ -65,7 +65,9 @@ public class CustomEntityAttributeDefinition implements IRelyingPartyOverridePro @Id @Column(name = "resource_id", nullable = false) String resourceId = UUID.randomUUID().toString(); - + + String protocol = "saml"; + @Override public Set getDefaultValues() { return customAttrListDefinitions; diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/IRelyingPartyOverrideProperty.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/IRelyingPartyOverrideProperty.java index 076fce7dd..989f2d7cd 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/IRelyingPartyOverrideProperty.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/IRelyingPartyOverrideProperty.java @@ -32,7 +32,9 @@ public interface IRelyingPartyOverrideProperty { public String getPersistType(); public String getPersistValue(); - + + public String getProtocol(); + /** * When the override actually is used in the UI, the "type" list is fairly limited, so each implementing class * should adjust the real value so the UI gets a value it expects. For actual file configured overrides, this @@ -61,4 +63,6 @@ public interface IRelyingPartyOverrideProperty { public void setPersistType(String persistType); public void setPersistValue(String persistValue); -} + + public void setProtocol(String protocol); +} \ No newline at end of file diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/RelyingPartyOverrideProperty.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/RelyingPartyOverrideProperty.java index 9c75bd382..622b50f69 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/RelyingPartyOverrideProperty.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/RelyingPartyOverrideProperty.java @@ -27,6 +27,7 @@ public class RelyingPartyOverrideProperty implements IRelyingPartyOverrideProper private String name; private String persistType; private String persistValue; + private String protocol = "saml"; @Override public Boolean getFromConfigFile() { @@ -43,7 +44,11 @@ public CustomAttributeType getAttributeType() { return CustomAttributeType.valueOf(displayType.toUpperCase()); } } - + + public String getProtocol() { + return protocol == null ? "saml" : protocol; + } + public String getTypeForUI() { return getDisplayType(); }