Migrate WASM Go Plugins to New SDK and Go 1.24 (#2532)

This commit is contained in:
xingpiaoliang
2025-07-11 10:43:00 +08:00
committed by GitHub
parent 9a45f07972
commit 081ab6ee8d
274 changed files with 2073 additions and 2165 deletions

View File

@@ -5,9 +5,10 @@ import (
"fmt"
"net"
"github.com/alibaba/higress/plugins/wasm-go/pkg/wrapper"
"github.com/higress-group/proxy-wasm-go-sdk/proxywasm"
"github.com/higress-group/proxy-wasm-go-sdk/proxywasm/types"
"github.com/higress-group/wasm-go/pkg/log"
"github.com/higress-group/wasm-go/pkg/wrapper"
"github.com/tidwall/gjson"
"github.com/zmap/go-iptree/iptree"
)
@@ -31,14 +32,16 @@ type RestrictionConfig struct {
Message string `json:"message"` //被拒绝时返回的消息
}
func main() {
func main() {}
func init() {
wrapper.SetCtx(
"ip-restriction",
wrapper.ParseConfigBy(parseConfig),
wrapper.ProcessRequestHeadersBy(onHttpRequestHeaders))
}
func parseConfig(json gjson.Result, config *RestrictionConfig, log wrapper.Log) error {
func parseConfig(json gjson.Result, config *RestrictionConfig, log log.Log) error {
sourceType := json.Get("ip_source_type")
if sourceType.Exists() && sourceType.String() != "" {
switch sourceType.String() {
@@ -117,7 +120,7 @@ func getDownStreamIp(config RestrictionConfig) (net.IP, error) {
return realIP, nil
}
func onHttpRequestHeaders(context wrapper.HttpContext, config RestrictionConfig, log wrapper.Log) types.Action {
func onHttpRequestHeaders(context wrapper.HttpContext, config RestrictionConfig, log log.Log) types.Action {
realIp, err := getDownStreamIp(config)
if err != nil {
return deniedUnauthorized(config, "get_ip_failed")