In English
Shibboleth IdP:n versio 3:sta löytyy myös toiminnallisuus jolla attribuuttien yhdistely onnistuu käyttäen "velocity macro" mallia. Yksi käyttötarkoitus tälle voisi olla esimerkiksi "cn" attribuutin luominen IdP:ssä "givenName" sekä "sn" attribuuteista. Tärkeää on huomioda että lähde attribuuteissa pitää olla juuri oikea määrä arvoja.
attribute-resolver.xml
<resolver:AttributeDefinition xsi:type="ad:Template" id="cn"> <resolver:Dependency ref="myLDAP" /> <resolver:AttributeEncoder xsi:type="enc:SAML1String" name="urn:mace:dir:attribute-def:cn" encodeType="false" /> <resolver:AttributeEncoder xsi:type="enc:SAML2String" name="urn:oid:2.5.4.3" friendlyName="cn" encodeType="false" /> <ad:Template>${givenName} ${sn}</ad:Template> <ad:SourceAttribute>givenName</ad:SourceAttribute> <ad:SourceAttribute>sn</ad:SourceAttribute> </resolver:AttributeDefinition>
Lähde: TemplateAttributeDefinition
Shibboleth IdP versio 4:ssa moniarvoisen attribuutin yhdistely kahdesta muusta attribuutista (ja eri lähteistä), joiden arvoihin lisätään alku :
<AttributeDefinition id="uniquecode" xsi:type="ScriptedAttribute"> <InputDataConnector ref="LDAP1" attributeNames="opiskelijanumero" /> <InputDataConnector ref="LDAP2" attributeNames="oppijanumero" /> <AttributeEncoder xsi:type="SAML2String" name="1.3.6.1.4.1.25178.1.2.14" friendlyName="schacPersonalUniqueCode" encodeType="false"/> <Script><![CDATA[ if (typeof opiskelijanumero != "undefined") { uniquecode.addValue("prefix1:" + opiskelijanumero.getValues().get(0)); } if (typeof oppijanumero != "undefined") { uniquecode.addValue("prefix2:" + oppijanumero.getValues().get(0)); } ]]></Script> </AttributeDefinition>
Lähde: ScriptedAttributeDefinition