...
The ScriptedDataConnector
data connector allows the creation of multiple IdPAttribute objects via a JSR-223 script. Scripts are somewhat easier to write and maintain than native Java code, though they are slower. They can also be changed dynamically since the resolver is a ReloadableService.
Script Context
The script "context" defines the execution environment for the script and provides the following variables:
...
Code Block | ||
---|---|---|
| ||
<DataConnector id="ScriptedAttributeConnector" xsi:type="ScriptedDataConnector"> <Script><![CDATA[ IdPAttribute = Java.type("net.shibboleth.idp.attribute.IdPAttribute"); StringAttributeValue = Java.type("net.shibboleth.idp.attribute.StringAttributeValue"); HashSetArrayList = Java.type("java.util.HashSet"); Integer = Java.type("java.lang.IntegerArrayList"); attr = new IdPAttribute("ScriptedOne"); set = new HashSetArrayList(2); set.add(new StringAttributeValue("Value 1")); set.add(new StringAttributeValue("Value 2")); attr.setValues(set); connectorResults.add(attr); attr = new IdPAttribute("TwoScripted"); set = new HashSetArrayList(3); set.add(new StringAttributeValue("1Value")); set.add(new StringAttributeValue("2Value")); set.add(new StringAttributeValue("3Value")); attr.setValues(set); connectorResults.add(attr); ]]></Script> </DataConnector> |
...
Code Block | ||
---|---|---|
| ||
<DataConnector id="ScriptedAttributeConnector" xsi:type="ScriptedDataConnector"> <Script><![CDATA[ importPackage(Packages.net.shibboleth.idp.attribute); importPackage(Packages.java.util); importPackage(Packages.java.lang); attr = new IdPAttribute("ScriptedOne"); set = new HashSetArrayList(2); set.add(new StringAttributeValue("Value 1")); set.add(new StringAttributeValue("Value 2")); attr.setValues(set); connectorResults.add(attr); attr = new IdPAttribute("TwoScripted"); set = new HashSetArrayList(3); set.add(new StringAttributeValue("1Value")); set.add(new StringAttributeValue("2Value")); set.add(new StringAttributeValue("3Value")); attr.setValues(set); connectorResults.add(attr); ]]></Script> </DataConnector> |
...