private Map<String, Object> getScriptedAttributesFromFile(final Map<String, Object> attributes) { final Object[] args = {attributes, LOGGER}; val map = ScriptingUtils.executeScriptEngine(this.scriptFile, args, Map.class); return ObjectUtils.defaultIfNull(map, new HashMap<>()); } }
@Override protected String resolveUsernameInternal(final Principal principal, final Service service, final RegisteredService registeredService) { try { LOGGER.debug("Found groovy script to execute"); val result = ScriptingUtils.executeScriptEngine(this.script, new Object[]{principal.getAttributes(), principal.getId(), LOGGER}, Object.class); if (result != null) { LOGGER.debug("Found username [{}] from script [{}]", result, this.script); return result.toString(); } } catch (final Exception e) { LOGGER.error(e.getMessage(), e); } LOGGER.warn("Script [{}] returned no value for username attribute. Fallback to default [{}]", this.script, principal.getId()); return principal.getId(); }