use of javax.script.SimpleBindings in project OpenAM by OpenRock.
the class BatchResource method actionCollection.
@Override
public Promise<ActionResponse, ResourceException> actionCollection(Context serverContext, ActionRequest actionRequest) {
if (!actionRequest.getAction().equals(BATCH)) {
final String msg = "Action '" + actionRequest.getAction() + "' not implemented for this resource";
final NotSupportedException exception = new NotSupportedException(msg);
debug.error(msg, exception);
return exception.asPromise();
}
String scriptId = null;
try {
JsonValue scriptIdValue = actionRequest.getContent().get(SCRIPT_ID);
if (scriptIdValue == null) {
if (debug.errorEnabled()) {
debug.error("BatchResource :: actionCollection - ScriptId null. Default scripts not implemented.");
}
return new BadRequestException().asPromise();
} else {
scriptId = scriptIdValue.asString();
}
final JsonValue requests = actionRequest.getContent().get(REQUESTS);
final String realm = getRealm(serverContext);
final ScriptConfiguration scriptConfig = scriptingServiceFactory.create(SubjectUtils.createSuperAdminSubject(), realm).get(scriptId);
final ScriptObject script = new ScriptObject(scriptConfig.getName(), scriptConfig.getScript(), scriptConfig.getLanguage());
final ScriptResponse response = new ScriptResponse();
final Bindings bindings = new SimpleBindings();
bindings.put(PAYLOAD, requests);
bindings.put(CONTEXT, serverContext);
bindings.put(LOGGER, debug);
bindings.put(REQUESTER, requester);
bindings.put(RESPONSE, response);
return newResultPromise(newActionResponse((JsonValue) scriptEvaluator.evaluateScript(script, bindings)));
} catch (ScriptException e) {
debug.error("BatchResource :: actionCollection - Error running script : {}", scriptId);
return exceptionMappingHandler.handleError(serverContext, actionRequest, e).asPromise();
} catch (javax.script.ScriptException e) {
debug.error("BatchResource :: actionCollection - Error running script : {}", scriptId);
return new InternalServerErrorException().asPromise();
}
}
use of javax.script.SimpleBindings in project OpenAM by OpenRock.
the class OidcClaimsExtensionTest method testBindings.
private <T> Bindings testBindings(Set<String> scopes, Map<String, Set<T>> requestedClaims) {
Bindings scriptVariables = new SimpleBindings();
scriptVariables.put("logger", logger);
scriptVariables.put("claims", new HashMap<String, Object>());
scriptVariables.put("accessToken", accessToken);
scriptVariables.put("session", ssoToken);
scriptVariables.put("identity", identity);
scriptVariables.put("scopes", scopes);
scriptVariables.put("requestedClaims", requestedClaims);
return scriptVariables;
}
use of javax.script.SimpleBindings in project OpenAM by OpenRock.
the class AbstractSandboxTests method shouldNotBeAllowedToAccessBlackListedMember.
@Test
public void shouldNotBeAllowedToAccessBlackListedMember() throws Exception {
// Given
Allowed allowed = new Allowed();
Bindings bindings = new SimpleBindings();
bindings.put("allowed", allowed);
// When
try {
eval(bindings, "allowed.forbiddenFruit.setDirty()");
fail("Sandbox failed to protect access to black-listed member");
} catch (ScriptException ex) {
// Then
assertThat(allowed.fruit.dirty).isFalse();
}
}
use of javax.script.SimpleBindings in project OpenAM by OpenRock.
the class StandardScriptEvaluatorTest method shouldSupportJSONParsingInGroovy.
@Test
public void shouldSupportJSONParsingInGroovy() throws Exception {
ScriptObject script = getGroovyScript("import groovy.json.JsonSlurper", "def slurper = new JsonSlurper()", "def json = slurper.parseText(x)", "json.a");
Bindings scope = new SimpleBindings();
scope.put("x", "{\"a\" : 12}");
Object result = testEvaluator.evaluateScript(script, scope);
assertThat(result).isEqualTo(12);
}
use of javax.script.SimpleBindings in project OpenAM by OpenRock.
the class ThreadPoolScriptEvaluatorTest method shouldDelegateToConfiguredScriptEvaluator.
@Test
public void shouldDelegateToConfiguredScriptEvaluator() throws Exception {
testEvaluator = new ThreadPoolScriptEvaluator(scriptEngineManager, Executors.newSingleThreadExecutor(), mockEvaluator);
ScriptObject testScript = getGroovyScript("x + 1");
Bindings bindings = new SimpleBindings();
bindings.put("x", 3);
int expectedResult = 42;
given(mockEvaluator.evaluateScript(testScript, bindings)).willReturn(expectedResult);
// When
Number result = testEvaluator.evaluateScript(testScript, bindings);
// Then
verify(mockEvaluator).evaluateScript(testScript, bindings);
assertThat(result.intValue()).isEqualTo(expectedResult);
}
Aggregations