start adding signature and encryption

This commit is contained in:
gowthaman.b
2023-11-12 08:25:52 +05:30
parent 1a22043cf2
commit 10813529f2
9 changed files with 254 additions and 64 deletions

View File

@@ -2,8 +2,10 @@ package com.restapi.integ
import com.restapi.config.AppConfig.Companion.appConfig
import com.restapi.domain.DataModel
import com.restapi.domain.Session
import org.slf4j.Logger
import com.restapi.domain.Session.currentTenant
import com.restapi.domain.Session.currentUser
import com.restapi.domain.Session.database
import org.slf4j.LoggerFactory
import java.io.File
import java.util.concurrent.ConcurrentHashMap
import javax.script.Invocable
@@ -12,18 +14,18 @@ import javax.script.ScriptEngineManager
object Scripting {
private val engineMap = ConcurrentHashMap<String, Invocable>()
private val logger = LoggerFactory.getLogger("script")
private fun getEngine(scriptName: String) = engineMap.computeIfAbsent(scriptName) {
val engine = ScriptEngineManager().getEngineByExtension("kts")!!
engine.eval(File(appConfig.scriptsPath(), scriptName).reader())
engine as Invocable
}
fun execute(scriptName: String, fnName: String, params: Map<String, Any>, logger: Logger): Any {
return getEngine(scriptName).invokeFunction(fnName, params, Session.database, logger)
fun execute(scriptName: String, fnName: String, params: Map<String, Any>): Any {
return getEngine(scriptName).invokeFunction(fnName, params, database, logger, currentUser(), currentTenant())
}
fun preSave(scriptName: String, fnName: String, data: DataModel, logger: Logger): Any {
return getEngine(scriptName).invokeFunction(fnName, data, Session.database, logger)
fun execute(scriptName: String, fnName: String, dataModel: DataModel): Any {
return getEngine(scriptName).invokeFunction(fnName, dataModel, database, logger, currentUser(), currentTenant())
}
}