<div dir="ltr">I'm sure this should be simple but I'm stymied. I need to release a username-like attribute that may come from either of two directory sources. I'm reliably authenticating against and retrieving attributes from both directories, including the sAMAccountName from our AD ("uaADLDAP"), and a UASystemID attribute from an Oracle LDAP ("myLDAP"). The script below works as long as there is a record with sAMAccountName in AD - so the else clause is not triggered - returning sAMAccountName in uaUsername, but fails to execute the else clause when there is no sAMAccountName.<div><br></div><div>
<p class=""><span class="">ScriptletAttributeDefinition uaUsername unable to execute script</span></p>
<p class=""><span class="">javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: </span>TypeError: UASystemID is not a function, it is sun.org.mozilla.javascript.internal.NativeJavaObject. (<Unknown Source>#15)</p>
<p class=""><span class=""></span><br></p>
<p class=""><span class=""></span><br></p>
<p class=""><span class=""><</span><span class="">resolver</span><span class="">:</span><span class="">AttributeDefinition </span><span class="">id</span><span class="">=</span><span class="">"uaUsername"</span><span class=""> </span><span class="">xsi</span><span class="">:</span><span class="">type</span><span class="">=</span><span class="">"Script"</span><span class=""> </span><span class="">xmlns</span><span class="">=</span><span class="">"urn:mace:shibboleth:2.0:resolver:ad"</span><span class="">></span></p>
<p class=""><span class=""> </span><span class=""><</span><span class="">resolver</span><span class="">:</span><span class="">Dependency </span><span class="">ref</span><span class="">=</span><span class="">"myLDAP"</span><span class=""> /></span></p>
<p class=""><span class=""> </span><span class=""><</span><span class="">resolver</span><span class="">:</span><span class="">Dependency </span><span class="">ref</span><span class="">=</span><span class="">"uaADLDAP"</span><span class=""> /></span></p>
<p class=""><span class=""> </span><span class=""><</span><span class="">resolver</span><span class="">:</span><span class="">AttributeEncoder </span><span class="">…</span><span class=""> /></span></p>
<p class=""><span class=""><!-- Script attempts to provide UA Username if AD and/or LDAP return value --></span></p>
<p class=""><span class=""> </span><span class=""><Script></span></p>
<p class=""><span class=""> </span><span class=""><![</span><span class="">CDATA</span><span class="">[</span> </p>
<p class=""><span class=""> importPackage(Packages.edu.internet2.middleware.shibboleth.common.attribute.provider);</span></p>
<p class=""><span class=""> importPackage(Packages.org.slf4j);</span></p>
<p class=""><span class=""> if (uaUsername == null) </span></p>
<p class=""><span class=""> {uaUsername = new BasicAttribute("uaUsername");}</span></p>
<p class=""><span class=""> if (typeof sAMAccountName != "undefined" && sAMAccountName != null && sAMAccountName.getValues().size() !=0)</span></p>
<p class=""><span class=""> { logger.debug("UA AD sAMAccountName Values: " + sAMAccountName.getValues());</span></p>
<p class=""><span class=""> uaUsername.getValues().add(sAMAccountName.getValues().get(0))</span></p>
<p class=""><span class=""> }</span></p>
<p class=""><span class=""> else</span></p>
<p class=""><span class=""> { if (typeof UASystemID != "undefined" && UASystemID != null && UASystemID().size() !=0)</span></p>
<p class=""><span class=""> { logger.debug("Oracle LDAP UASystemID Values: " + UASystemID.getValues());</span></p>
<p class=""><span class=""> uaUsername.getValues().add(UASystemID.getValues().get(0))</span></p>
<p class=""><span class=""> }</span></p>
<p class=""><span class=""> }</span></p><p class=""><span class=""></span></p>
<p class=""><span class=""> </span><span class="">]]></span></p>
<p class=""><span class=""> </span><span class=""></Script></span></p>
<p class=""><span class=""></</span><span class="">resolver</span><span class="">:</span><span class="">AttributeDefinition></span></p>
<p class=""><span class=""></span>What am I missing?</p><p class="">David Bantz</p><p class="">U Alaska</p></div></div>