Script Help in AttributeDefinition
Jann Malenkoff
jannmalenkoff at gmail.com
Wed May 31 00:47:20 EDT 2017
Hello:
I'm having a challenge w.r.t migrating a script from v2 to v3 in
'attribute-resolver.xml'......it is a unique business workflow but I have
to port it.
A) There is Step1Entitlements --- which marshalls a number of other
entitlements
B) There is Step2Entitlements --- which checks for presence of 'text' in
entitlement value -- and subsequently generate a new entitlement (depending
on the value)
C) The script appears to calculate logic in Step B above --- but does not
return the value --- instead the following is logged: "Attribute Definition
'Step2Entitlements': scripted attribute 'Step2Entitlements': return initial
attribute unchanged"
Any ideas what I am missing?
(A)
<resolver:AttributeDefinition xsi:type="ad:Simple" id="Step1Entitlements">
<resolver:Dependency ref="StudentEntitlement" />
<resolver:Dependency ref="FacultyEntitlement" />
<resolver:Dependency ref="StaffEntitlement"
/>
<resolver:AttributeEncoder xsi:type="enc:SAML2String"
xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
name="urn:mace:dir:attribute-def:Step1Entitlements"
friendlyName="Step1Entitlements" />
</resolver:AttributeDefinition>
(B)
<resolver:AttributeDefinition id="Step2Entitlements"
xsi:type="Script" xmlns="urn:mace:shibboleth:2.0:resolver:ad"
sourceAttributeID="Step1Entitlements">
<resolver:Dependency ref="Step1Entitlements" />
<resolver:AttributeEncoder xsi:type="SAML2String"
xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
name="urn:mace:dir:attribute-def:Step2Entitlements"
friendlyName="Step2Entitlements" />
<Script>
<![CDATA[
load("nashorn:mozilla_compat.js");
importPackage(Packages.edu.internet2.middleware.shibboleth.common.attribute.provider);
importPackage(Packages.org.slf4j);
step2Marshalling = new
BasicAttribute("step2Marshalling");
if (typeof Step1Entitlements != 'undefined')
{
if (Step1Entitlements != null ||
Step1Entitlements != "" || Step1Entitlements != " ")
{
value =
Step1Entitlements.getValues().get(0);
if
((value.toLowerCase().contains("staff") ||
value.toLowerCase().contains("faculty")) && num < 1)
{
Step1Entitlements.getValues().add("Employee FooBar");
}
else
{
Step1Entitlements.getValues().add("Student FooBar");
}
}
else
{
logger.info("Values are null");
}
}
logger.info("Values of Step2Entitlements
are: " + Step2Entitlements.getValues());
]]>
</Script>
</resolver:AttributeDefinition>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://shibboleth.net/pipermail/users/attachments/20170530/178d2c92/attachment.html>
More information about the users
mailing list