登录
首页 >  Golang >  Go问答

如何检查 OPA Rego 文件是否正确

来源:stackoverflow

时间:2024-04-27 23:18:37 266浏览 收藏

目前golang学习网上已经有很多关于Golang的文章了,自己在初次阅读这些文章中,也见识到了很多学习思路;那么本文《如何检查 OPA Rego 文件是否正确》,也希望能帮助到大家,如果阅读完后真的对你学习Golang有帮助,欢迎动动手指,评论留言并分享~

问题内容

我创建了一个 sample.rego 文件,并以 base64 进行编码。 那么 golang 库中有什么方法可以验证 rego base64 编码值是否正确。

  1. 示例.rego 文件:

    package policy.authz
    
    default allow = false
    allow {
      input.policy == "abcd"
    }
  2. base64 编码值为:

    cgfja2fnzsbwb2xpy3kuyxv0ahokcimgbg9nawmgdghhdcbpbxbszw1lbnrzihbvbgljes4kzgvmyxvsdcbhbgxvdya9igzhbhnlcmfsbg93ihskicbpbnb1dc5wb2xpy3kgpt0gimfiy2q icn0=

现在我必须在 golang 库的帮助下验证我们编码的文件是否有效。

现在如果我将 sample.rego 文件更改为:

package policy.authz
default allow = false
allow {
  wrong dummy data
  input.policy == "abcd"
}
  • base64 编码值为:

cgfja2fnzsbwb2xpy3kuyxv0ahokzgvmyxvsdcbhbgxvdya9igzhbhnlcmfsbg93ihskicb3cm9uzybkdw1tesbkyxrhciagaw5wdxqucg9sawn5id09icjhymnkigp9

现在我必须借助 golang 库来验证我们编码的文件是否有效。


正确答案


您必须对其进行解码,如果失败,则说明不是 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==`))
}

今天关于《如何检查 OPA Rego 文件是否正确》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>