Spring 按IP地址过滤的Rego测试
我使用与此类似的规则:Spring 按IP地址过滤的Rego测试,spring,rego,Spring,Rego,我使用与此类似的规则: allow { http_request.method == "POST" allowed_paths[http_request.path] net.cidr_contains("XX.YYY.ZZZ.160/29-XX.YYY.ZZZ.32/29",source_address.Address.SocketAddress.address) } 我有两个问题: 这是根据发出请求的客户端的IP地址进行过滤的正
allow {
http_request.method == "POST"
allowed_paths[http_request.path]
net.cidr_contains("XX.YYY.ZZZ.160/29-XX.YYY.ZZZ.32/29",source_address.Address.SocketAddress.address)
}
我有两个问题:
是的,
net.cidr\u contains
是正确的选择,如果您知道批准的请求将来自特定的区块
我猜你的Rego看起来像这样:
package validate
import input.attributes.request.http as http_request
import input.attributes.source.address as source_address
allowed_paths = {
"/foo",
"/bar"
}
allow {
http_request.method == "POST"
allowed_paths[http_request.path]
net.cidr_contains("127.0.0.1/24",source_address.Address.SocketAddress.address)
}
有几种方法可以测试
您可以手动使用,它允许您手工编写请求并测试它们。这不是一个好的自动化解决方案,但可以用于现场/健康检查
对于CI或预提交检查,可以使用opa
CLI进行单元测试。存储库提供了如何执行此操作的详细信息。测试可能类似于:
package validate
test_input_allowed_request {
input := {"attributes":{"request":{"http":{"method":"POST","path":"/foo"}},"source":{"address":{"Address":{"SocketAddress":{"address":"127.0.0.64/26"}}}}}}
results := allow with input as input
results.allow
}
是的,
net.cidr\u contains
是正确的选择,如果您知道批准的请求将来自特定的区块
我猜你的Rego看起来像这样:
package validate
import input.attributes.request.http as http_request
import input.attributes.source.address as source_address
allowed_paths = {
"/foo",
"/bar"
}
allow {
http_request.method == "POST"
allowed_paths[http_request.path]
net.cidr_contains("127.0.0.1/24",source_address.Address.SocketAddress.address)
}
有几种方法可以测试
您可以手动使用,它允许您手工编写请求并测试它们。这不是一个好的自动化解决方案,但可以用于现场/健康检查
对于CI或预提交检查,可以使用opa
CLI进行单元测试。存储库提供了如何执行此操作的详细信息。测试可能类似于:
package validate
test_input_allowed_request {
input := {"attributes":{"request":{"http":{"method":"POST","path":"/foo"}},"source":{"address":{"Address":{"SocketAddress":{"address":"127.0.0.64/26"}}}}}}
results := allow with input as input
results.allow
}
你能发布你正在使用的完整文件吗?目前,很难猜测这些变量的来源/格式。如果它太长,请随意链接到您可以发布您正在使用的完整文件吗?目前,很难猜测这些变量的来源/格式。如果太长,请随时链接到