Add Authorized Data Sharing in Script Runner Execution
- Introduced functionality to set shared data with authorized information for Process calls in the ScriptRunner. - Enhanced the executeTestFunction to include error handling for setting share data, improving robustness during script execution. - This change ensures that authorization context is properly managed when calling JavaScript functions directly, enhancing security and functionality.
This commit is contained in:
parent
4c80c3ffa0
commit
809792c152
1 changed files with 16 additions and 0 deletions
|
|
@ -424,6 +424,22 @@ func (r *ScriptRunner) executeTestFunction(tc *ScriptTestCase, scriptInfo *Scrip
|
||||||
// Get the V8 context
|
// Get the V8 context
|
||||||
v8ctx := scriptCtx.Context
|
v8ctx := scriptCtx.Context
|
||||||
|
|
||||||
|
// Set share data with authorized info for Process calls
|
||||||
|
// This is needed because we call fn.Call directly instead of scriptCtx.Call
|
||||||
|
var authorized map[string]interface{}
|
||||||
|
if agentCtx.Authorized != nil {
|
||||||
|
authorized = agentCtx.Authorized.AuthorizedToMap()
|
||||||
|
}
|
||||||
|
err = bridge.SetShareData(v8ctx, v8ctx.Global(), &bridge.Share{
|
||||||
|
Sid: "",
|
||||||
|
Root: false,
|
||||||
|
Global: nil,
|
||||||
|
Authorized: authorized,
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("failed to set share data: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
// Create testing.T JavaScript object
|
// Create testing.T JavaScript object
|
||||||
testingTObj, err := NewTestingTObject(v8ctx, testingT)
|
testingTObj, err := NewTestingTObject(v8ctx, testingT)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue