...
#set ($requestClass = $attributeReleaseContext.getClass().forName("jakarta.servlet.http.HttpServletRequest"))
#set ($isAttributeRequired = $attributeReleaseContext.getClass().forName("net.shibboleth.idp.consent.logic.impl.IsAttributeRequiredPredicate").getDeclaredConstructor($requestClass).newInstance($request))
...
* Im Velocity Template die Checkbox für non-required Attribute anzeigen. Required Attribute werden ohne Checkbox angezeigt. Dazu wird in der Datei ''views/intercept/attribute-release.vm'' folgende if-Anweisung ersetzt:
...
#foreach ($attribute in $attributeReleaseContext.getConsentableAttributes().values())
#if ($attributeReleaseFlowDescriptor.perAttributeConsentEnabled)
* durch:
...
#foreach ($attribute in $attributeReleaseContext.getConsentableAttributes().values())
#if ($attributeReleaseFlowDescriptor.perAttributeConsentEnabled)
Wird der AttributeQuery benutzt, muss auch hier der letzte Consent vom Nutzer beachtet werden. Dazu ist in ''conf/intercept/consent-intercept-config.xml'' für die Bean ''shibboleth.consent.AttributeQuery.Condition'' der parent Parameter auf den Wert ''shibboleth.Conditions.TRUE'' zu setzen, siehe hierzu unter [[de:shibidp:config-storage#user_consent_zu_attributfreigabe_bei_attribute_queries_beruecksichtigen|Server-Side-Storage, Sessions, User Consent und Persistent Identifier]]. Damit werden auch AttributeQueries gegen die zuletzt gespeicherte Nutzereinwilligung gefiltert. Hat der Nutzer nur einmal zugestimmt, werden keine Attribute übertragen.
Für das Propagieren des zusätzlichen Objektes in den Attribute-Release-Flow ist leider ein Neustart des IdP nötig.