我创建了一个sample.rego文件,并用base64编码。那么,在Golang库中是否有任何方法可以验证rego base64编码值是否正确。
包policy.authz默认允许=假允许{ input.policy == "abcd“}
cGFja2FnZSBwb2xpY3kuYXV0aHoKCiMgbG9naWMgdGhhdCBpbXBsZW1lbnRzIHBvbGljeS4KZGVmYXVsdCBhbGxvdyA9IGZhbHNlCmFsbG93IHsKICBpbnB1dC5wb2xpY3kgPT0gImFiY2QiCn0=
现在我必须在GoLang库的帮助下验证我们编码的文件是否有效。
现在,如果我将Sample.rego文件更改为:
package policy.authz
default allow = false
allow {
wrong dummy data
input.policy == "abcd"
}cGFja2FnZSBwb2xpY3kuYXV0aHoKZGVmYXVsdCBhbGxvdyA9IGZhbHNlCmFsbG93IHsKICB3cm9uZyBkdW1teSBkYXRhCiAgaW5wdXQucG9saWN5ID09ICJhYmNkIgp9
现在我必须在GoLang库的帮助下验证我们编码的文件是无效的。
发布于 2021-12-14 16:37:12
在Golang中有任何方法来验证rego base64编码值是否正确。
您必须解码它,如果它失败,它不是base64或没有正确编码。
这里有一个例子。
package main
import (
"encoding/base64"
"fmt"
)
func IsBase64(s string) bool {
_, err := base64.StdEncoding.DecodeString(s)
return err == nil
}
func main() {
fmt.Println(IsBase64(`Invalid string`))
fmt.Println(IsBase64(`VmFsaWQgc3RyaW5nCg==`))
}发布于 2021-12-16 16:32:56
import "github.com/open-policy-agent/opa/ast"
modules := map[string]*ast.Module{}
compiler := ast.NewCompiler()
modules["policyModule"], err = ast.ParseModule("policyModule", string(policy))
if err!=nil{
log.Error(err, "unable to parse the module")
}
compiler.Compile(modules)
if compiler.Failed() {
log.Error(compiler.Errors, "unable to compile the module")
}https://stackoverflow.com/questions/70351314
复制相似问题