From ab6dd4bd9c993810450e7ffe0bc531c093644254 Mon Sep 17 00:00:00 2001 From: Jj! Date: Fri, 22 Feb 2019 09:38:11 -0600 Subject: [PATCH] [SHIBUI-1237] handle null boolean --- .../JPAEntityDescriptorServiceImpl.java | 3 +++ .../util/ModelRepresentationConversions.java | 22 +++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/JPAEntityDescriptorServiceImpl.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/JPAEntityDescriptorServiceImpl.java index c088e9ecd..0c0841443 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/JPAEntityDescriptorServiceImpl.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/JPAEntityDescriptorServiceImpl.java @@ -669,6 +669,9 @@ public EntityDescriptorRepresentation createRepresentationFromDescriptor(org.ope } } + // TODO: fix this; there is a problem with the way that defaults are working and the processing from the front end + ModelRepresentationConversions.completeMe(relyingPartyOverrides); + representation.setRelyingPartyOverrides(relyingPartyOverrides); } diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/util/ModelRepresentationConversions.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/util/ModelRepresentationConversions.java index f7279179c..33bda508a 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/util/ModelRepresentationConversions.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/util/ModelRepresentationConversions.java @@ -96,9 +96,31 @@ public static Map getRelyingPartyOverridesRepresentationFromAttr } } + // TODO: fix this; currently there is a problem with not returning a value + completeMe(relyingPartyOverrides); + + return relyingPartyOverrides; + } + + // TODO: fix this; currently there is a problem with not returning a value + public static Map completeMe(Map relyingPartyOverrides) { + customPropertiesConfiguration + .getOverrides() + .stream() + .filter(o -> !relyingPartyOverrides.containsKey(o.getName())) + .filter(o -> o.getDisplayType().equals("boolean")) + .forEach(p -> relyingPartyOverrides.put(p.getName(), getDefaultValueFromProperty(p))); return relyingPartyOverrides; } + private static Object getDefaultValueFromProperty(RelyingPartyOverrideProperty property) { + switch (property.getDisplayType()) { + case "boolean": + return Boolean.getBoolean(property.getDefaultValue()); + } + return null; + } + public static Object getOverrideFromAttribute(Attribute attribute) { RelyingPartyOverrideProperty relyingPartyOverrideProperty = customPropertiesConfiguration.getOverrides().stream() .filter(it -> it.getAttributeFriendlyName().equals(attribute.getFriendlyName())).findFirst().get();