keycloak-service
公開メンバ関数 | 関数 | 非公開メンバ関数 | 非公開変数類 | 全メンバ一覧
org.keycloak.scripting.DefaultScriptingProvider クラス
org.keycloak.scripting.DefaultScriptingProvider の継承関係図
Inheritance graph
org.keycloak.scripting.DefaultScriptingProvider 連携図
Collaboration graph

公開メンバ関数

InvocableScriptAdapter prepareInvocableScript (ScriptModel scriptModel, ScriptBindingsConfigurer bindingsConfigurer)
 
AbstractEvaluatableScriptAdapter prepareEvaluatableScript (ScriptModel scriptModel)
 
ScriptModel createScript (String realmId, String mimeType, String scriptName, String scriptCode, String scriptDescription)
 
void close ()
 

関数

 DefaultScriptingProvider (ScriptEngineManager scriptEngineManager)
 

非公開メンバ関数

CompiledScript tryCompile (ScriptModel scriptModel, Compilable engine)
 
ScriptEngine createPreparedScriptEngine (ScriptModel script)
 
ScriptEngine lookupScriptEngineFor (ScriptModel script)
 

非公開変数類

final ScriptEngineManager scriptEngineManager
 

詳解

A ScriptingProvider that uses a ScriptEngineManager to evaluate scripts with a ScriptEngine.

著者
Thomas Darimont

構築子と解体子

◆ DefaultScriptingProvider()

org.keycloak.scripting.DefaultScriptingProvider.DefaultScriptingProvider ( ScriptEngineManager  scriptEngineManager)
inlinepackage
37  {
38  if (scriptEngineManager == null) {
39  throw new IllegalStateException("scriptEngineManager must not be null!");
40  }
41 
43  }
final ScriptEngineManager scriptEngineManager
Definition: DefaultScriptingProvider.java:35

関数詳解

◆ close()

void org.keycloak.scripting.DefaultScriptingProvider.close ( )
inline
95  {
96  //NOOP
97  }

◆ createPreparedScriptEngine()

ScriptEngine org.keycloak.scripting.DefaultScriptingProvider.createPreparedScriptEngine ( ScriptModel  script)
inlineprivate

Looks-up a ScriptEngine with prepared Bindings for the given Script.

102  {
103  ScriptEngine scriptEngine = lookupScriptEngineFor(script);
104 
105  if (scriptEngine == null) {
106  throw new IllegalStateException("Could not find ScriptEngine for script: " + script);
107  }
108 
109  return scriptEngine;
110  }
ScriptEngine lookupScriptEngineFor(ScriptModel script)
Definition: DefaultScriptingProvider.java:115

◆ createScript()

ScriptModel org.keycloak.scripting.DefaultScriptingProvider.createScript ( String  realmId,
String  mimeType,
String  scriptName,
String  scriptCode,
String  scriptDescription 
)
inline
90  {
91  return new Script(null /* scriptId */, realmId, scriptName, mimeType, scriptCode, scriptDescription);
92  }

◆ lookupScriptEngineFor()

ScriptEngine org.keycloak.scripting.DefaultScriptingProvider.lookupScriptEngineFor ( ScriptModel  script)
inlineprivate

Looks-up a ScriptEngine based on the MIME-type provided by the given Script.

115  {
116  ClassLoader cl = Thread.currentThread().getContextClassLoader();
117  try {
118  Thread.currentThread().setContextClassLoader(DefaultScriptingProvider.class.getClassLoader());
119  return scriptEngineManager.getEngineByMimeType(script.getMimeType());
120  }
121  finally {
122  Thread.currentThread().setContextClassLoader(cl);
123  }
124  }
final ScriptEngineManager scriptEngineManager
Definition: DefaultScriptingProvider.java:35
DefaultScriptingProvider(ScriptEngineManager scriptEngineManager)
Definition: DefaultScriptingProvider.java:37

◆ prepareEvaluatableScript()

AbstractEvaluatableScriptAdapter org.keycloak.scripting.DefaultScriptingProvider.prepareEvaluatableScript ( ScriptModel  scriptModel)
inline

Wraps the provided ScriptModel in a javax.script.Invocable instance with bindings configured through the ScriptBindingsConfigurer.

引数
scriptModelmust not be { null}
63  {
64  if (scriptModel == null) {
65  throw new IllegalArgumentException("script must not be null");
66  }
67 
68  if (scriptModel.getCode() == null || scriptModel.getCode().trim().isEmpty()) {
69  throw new IllegalArgumentException("script must not be null or empty");
70  }
71 
72  ScriptEngine engine = createPreparedScriptEngine(scriptModel);
73 
74  if (engine instanceof Compilable) {
75  return new CompiledEvaluatableScriptAdapter(scriptModel, tryCompile(scriptModel, (Compilable) engine));
76  }
77 
78  return new UncompiledEvaluatableScriptAdapter(scriptModel, engine);
79  }
ScriptEngine createPreparedScriptEngine(ScriptModel script)
Definition: DefaultScriptingProvider.java:102
CompiledScript tryCompile(ScriptModel scriptModel, Compilable engine)
Definition: DefaultScriptingProvider.java:81

◆ prepareInvocableScript()

InvocableScriptAdapter org.keycloak.scripting.DefaultScriptingProvider.prepareInvocableScript ( ScriptModel  scriptModel,
ScriptBindingsConfigurer  bindingsConfigurer 
)
inline

Wraps the provided ScriptModel in a javax.script.Invocable instance with bindings configured through the ScriptBindingsConfigurer.

引数
scriptModelmust not be { null}
bindingsConfigurermust not be { null}
52  {
53  final AbstractEvaluatableScriptAdapter evaluatable = prepareEvaluatableScript(scriptModel);
54  return evaluatable.prepareInvokableScript(bindingsConfigurer);
55  }
AbstractEvaluatableScriptAdapter prepareEvaluatableScript(ScriptModel scriptModel)
Definition: DefaultScriptingProvider.java:63

◆ tryCompile()

CompiledScript org.keycloak.scripting.DefaultScriptingProvider.tryCompile ( ScriptModel  scriptModel,
Compilable  engine 
)
inlineprivate
81  {
82  try {
83  return engine.compile(scriptModel.getCode());
84  } catch (ScriptException e) {
85  throw new ScriptCompilationException(scriptModel, e);
86  }
87  }

メンバ詳解

◆ scriptEngineManager

final ScriptEngineManager org.keycloak.scripting.DefaultScriptingProvider.scriptEngineManager
private

このクラス詳解は次のファイルから抽出されました: