use of org.forgerock.openam.scripting.service.ScriptingService in project OpenAM by OpenRock.
the class ScriptedAuthModulesStep method upgradeScriptedAuthModules.
private void upgradeScriptedAuthModules(String realm, Set<ScriptData> scriptDataSet) throws AMConfigurationException, ScriptException, SSOException, SMSException {
ScriptingService service = serviceFactory.create(getAdminSubject(), realm);
AMAuthenticationManager authManager = new AMAuthenticationManager(getAdminToken(), realm);
for (ScriptData scriptData : scriptDataSet) {
Map<String, Set<String>> attributes = new HashMap<>();
UpgradeProgress.reportStart("upgrade.scripted.auth.server.script.start", scriptData.serverSideScript.getName(), realm);
service.create(scriptData.serverSideScript);
attributes.put(SERVER_SCRIPT, Collections.singleton(scriptData.serverSideScript.getId()));
UpgradeProgress.reportEnd("upgrade.success");
if (scriptData.clientSideScript != null) {
UpgradeProgress.reportStart("upgrade.scripted.auth.client.script.start", scriptData.clientSideScript.getName(), realm);
service.create(scriptData.clientSideScript);
attributes.put(CLIENT_SCRIPT, Collections.singleton(scriptData.clientSideScript.getId()));
UpgradeProgress.reportEnd("upgrade.success");
} else {
attributes.put(CLIENT_SCRIPT, Collections.singleton(EMPTY_SCRIPT_SELECTION));
}
UpgradeProgress.reportStart("upgrade.scripted.auth.module.script.start", scriptData.moduleName, realm);
AMAuthenticationInstance instance = authManager.getAuthenticationInstance(scriptData.moduleName);
if (instance != null) {
instance.setAttributeValues(attributes);
UpgradeProgress.reportEnd("upgrade.success");
} else {
DEBUG.error("Scripted module {} in realm {} could not be found", scriptData.moduleName, realm);
UpgradeProgress.reportEnd("upgrade.failed");
}
}
}
use of org.forgerock.openam.scripting.service.ScriptingService in project OpenAM by OpenRock.
the class ScriptingGuiceModule method configure.
@Override
protected void configure() {
bind(ScriptValidator.class).to(StandardScriptValidator.class);
bind(Logger.class).annotatedWith(Names.named("ScriptLogger")).toInstance(logger);
install(new FactoryModuleBuilder().implement(new TypeLiteral<ScriptingService>() {
}, ScriptConfigurationService.class).build(new TypeLiteral<ScriptingServiceFactory>() {
}));
install(new FactoryModuleBuilder().implement(new TypeLiteral<ScriptingDataStore>() {
}, ScriptConfigurationDataStore.class).build(new TypeLiteral<ScriptingDataStoreFactory>() {
}));
bind(StandardScriptEngineManager.class).annotatedWith(Names.named(AUTHENTICATION_SERVER_SIDE.name())).toInstance(new StandardScriptEngineManager());
bind(StandardScriptEngineManager.class).annotatedWith(Names.named(POLICY_CONDITION.name())).toInstance(new StandardScriptEngineManager());
bind(StandardScriptEngineManager.class).annotatedWith(Names.named(OIDC_CLAIMS.name())).toInstance(new StandardScriptEngineManager());
bind(RestletHttpClient.class).annotatedWith(Names.named(SupportedScriptingLanguage.JAVASCRIPT.name())).to(JavaScriptHttpClient.class);
bind(RestletHttpClient.class).annotatedWith(Names.named(SupportedScriptingLanguage.GROOVY.name())).to(GroovyHttpClient.class);
try {
bind(Client.class).annotatedWith(Names.named("ScriptingHttpClient")).toInstance(new Client(new HttpClientHandler()));
} catch (HttpApplicationException e) {
logger.error("Failed to create HttpClientHandler", e);
}
}
use of org.forgerock.openam.scripting.service.ScriptingService in project OpenAM by OpenRock.
the class ScriptResourceTest method setUp.
@BeforeMethod
public void setUp() throws ResourceException {
Logger logger = mock(Logger.class);
ScriptingService scriptingService = new MockScriptingService();
ScriptingServiceFactory serviceFactory = mock(ScriptingServiceFactory.class);
when(serviceFactory.create(any(Subject.class), anyString())).thenReturn(scriptingService);
ExceptionMappingHandler<ScriptException, ResourceException> errorHandler = new ScriptExceptionMappingHandler();
scriptResource = new ScriptResource(logger, serviceFactory, errorHandler, new StandardScriptValidator(new StandardScriptEngineManager()));
context = mock(Context.class);
given(context.asContext(HttpContext.class)).willReturn(new HttpContext(json(object(field("headers", Collections.emptyMap()), field("parameters", Collections.emptyMap()))), null));
}
Aggregations