<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jun 12, 2015 at 12:37 PM, Rod Widdowson <span dir="ltr"><<a href="mailto:rdw@steadingsoftware.com" target="_blank">rdw@steadingsoftware.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div id=":2t1" class="" style="overflow:hidden">In that case I'm stumped and await the logs...</div></blockquote><div> </div></div>I'm not sure that they'll be that helpful, but here goes.</div><div class="gmail_extra"><br></div><div class="gmail_extra"><div class="gmail_extra"><div class="gmail_extra">2015-06-12 13:37:53,120 - DEBUG [net.shibboleth.idp.attribute.resolver.ad.impl.ScriptedAttributeDefinition:193] - Attribute Definition 'umichPersonUniqueId': adding to-be-populated attribute to script context</div><div class="gmail_extra">2015-06-12 13:37:53,120 - DEBUG [net.shibboleth.idp.attribute.resolver.ad.impl.ScriptedAttributeDefinition:199] - Attribute Definition 'umichPersonUniqueId': adding contexts to script context</div><div class="gmail_extra">2015-06-12 13:37:53,121 - DEBUG [net.shibboleth.idp.attribute.resolver.ad.impl.ScriptedAttributeDefinition:205] - Attribute Definition 'umichPersonUniqueId': adding emulated V2 request context to script context</div><div class="gmail_extra">2015-06-12 13:37:53,121 - DEBUG [net.shibboleth.idp.attribute.resolver.ad.impl.ScriptedAttributeDefinition:210] - Attribute Definition 'umichPersonUniqueId': adding dependent attribute 'umichPersonPrincipalName' with the following values to the script context: [StringAttributeValue{value=<a href="mailto:liamr@comcast.net">liamr@comcast.net</a>}]</div><div class="gmail_extra">2015-06-12 13:37:53,257 - ERROR [net.shibboleth.idp.profile.impl.ResolveAttributes:256] - Profile Action ResolveAttributes: Error resolving attributes</div><div class="gmail_extra">net.shibboleth.idp.attribute.resolver.ResolutionException: Attribute Definition 'umichPersonUniqueId': unable to execute script</div><div class="gmail_extra"><span class="" style="white-space:pre">     </span>at net.shibboleth.idp.attribute.resolver.ad.impl.ScriptedAttributeDefinition.doAttributeDefinitionResolve(ScriptedAttributeDefinition.java:152)</div><div class="gmail_extra">Caused by: javax.script.ScriptException: TypeError: Cannot get property "principalName" of null in <eval> at line number 7</div><div class="gmail_extra"><span class="" style="white-space:pre">       </span>at jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException(NashornScriptEngine.java:455)</div><div class="gmail_extra">Caused by: jdk.nashorn.internal.runtime.ECMAException: TypeError: Cannot get property "principalName" of null</div><div class="gmail_extra"><span class="" style="white-space:pre">    </span>at jdk.nashorn.internal.runtime.ECMAErrors.error(ECMAErrors.java:57)</div><div><br></div><div><br></div><div>The script isn't terribly complicated either...</div><div><div>// set up the logger</div><div>logger = Java.type("org.slf4j.LoggerFactory").getLogger("net.shibboleth.idp.attribute");</div><div><br></div><div>if (typeof(umichDirectoryID) == 'undefined') {</div><div>    with( new JavaImporter( Packages.org.apache.commons.codec.digest )) {</div><div>        salt = "some#salt#value#12345679";</div><div>        uniqueValue = requestContext.principalName + salt;</div><div><br></div><div>        // Create md5 value</div><div>        localpart = DigestUtils.shaHex(uniqueValue);</div><div><br></div><div>        // Prepend unique and pseudo-random localpart to domain name</div><div>        umichPersonUniqueId.addValue(localpart);</div><div>    }</div><div>} else {</div><div>    umichPersonUniqueId.addValue(umichDirectoryID.getValues().get(0));</div><div>}</div><div><br></div><div>logger.debug("***** umichPersonUniqueId: " + umichPersonUniqueId.getValues());</div></div><div><br></div><div><br></div><div>Liam</div></div></div></div>