====== Leere Attribute aus dem User Consent ausblenden ====== Dieser Artikel ist ein Community-Beitrag für Shibboleth IdP 3.x. Es ist unklar, ob er für Shibboleth IdP 4.x so noch gilt. Werden die Nutzerattribute im Attribute-Resolver über einen DataConnector vom Typ [[https://wiki.shibboleth.net/confluence/display/IDP30/RelationalDatabaseConnector|RelationalDatabase]] bezogen, so werden sowohl leere Strings ("") als auch NULL-Values über den Attributtyp [[https://build.shibboleth.net/nexus/service/local/repositories/site/content/java-identity-provider/3.2.1/apidocs/net/shibboleth/idp/attribute/EmptyAttributeValue.html|EmptyAttributeValue]] kodiert.\\ __(Es könnte bitte noch jemand bestätigen oder dementieren, ob dieses Verhalten auch für LDAP-Konnektoren zutrifft)__\\ Dies führt auf der Consent-Seite dazu, dass diese Attribute mit dem Wert "NULL_VALUE" angezeigt werden. Beispiele hierfür sind die Attribute dfnEduPersonTermsOfStudy, dfnEduPersonFieldOfStudyString oder ähnliche studienbezogene Attribute, die bei Mitarbeitern in der Regel leer oder NULL sind.\\ Um diese Attribute beim Consent auszublenden, kann eine Änderung an der Datei attribute-release.vm vorgenommen werden. ...
#foreach ($attribute in $attributeReleaseContext.getConsentableAttributes().values()) #set( $empty = false) #foreach($value in $attribute.values) #if ($value.class.name == "net.shibboleth.idp.attribute.EmptyAttributeValue") #set ($empty = true) #break #end #end #if(!$empty) #end #end
#springMessageText("idp.attribute-release.attributesHeader", "Information to be Provided to Service")
$encoder.encodeForHTML($attributeDisplayNameFunction.apply($attribute)) #foreach ($value in $attribute.values) $encoder.encodeForHTML($value.getDisplayValue())
#end
#if ($attributeReleaseFlowDescriptor.perAttributeConsentEnabled) #set ($inputType = "checkbox") #else #set ($inputType = "hidden") #end
...
Hierbei wird in der foreach-Schleife geprüft, ob das anzuzeigende Attribut vom Typ EmptyAttributeValue ist (#if ($value.class.name == "net.shibboleth.idp.attribute.EmptyAttributeValue")). Der Schalter "empty" wird gesetzt und die Tabellenzeile mit dem Attributnamen und dem Attributwert wird anschließend nicht ins HTML geschrieben. {{tag>archiv}}