@@ -3,6 +3,7 @@ package plugin
3
3
import (
4
4
"bytes"
5
5
"context"
6
+ "encoding/base64"
6
7
"encoding/json"
7
8
"net/http"
8
9
@@ -69,18 +70,34 @@ func (p *Plugin) OnTrafficFromClient(
69
70
p .Logger .Info ("Failed to handle client message" , "error" , err )
70
71
}
71
72
73
+ // Get the client request from the GatewayD request.
72
74
request := cast .ToString (sdkPlugin .GetAttr (req , "request" , "" ))
73
75
if request == "" {
74
76
return req , nil
75
77
}
76
78
77
- query , err := postgres .GetQueryFromRequest (request )
78
- if err != nil {
79
- p .Logger .Error ("Failed to get query from request" , "error" , err )
79
+ // Get the query from the request.
80
+ query := cast .ToString (sdkPlugin .GetAttr (req , "query" , "" ))
81
+ if query == "" {
82
+ p .Logger .Debug ("Failed to get query from request, possibly not a SQL query request" )
80
83
return req , nil
81
84
}
82
85
p .Logger .Info ("Query" , "query" , query )
83
86
87
+ // Decode the query.
88
+ decodedQuery , err := base64 .StdEncoding .DecodeString (query )
89
+ if err != nil {
90
+ return req , err
91
+ }
92
+ p .Logger .Info ("Decoded Query" , "decodedQuery" , decodedQuery )
93
+
94
+ // Unmarshal query into a map.
95
+ var queryMap map [string ]interface {}
96
+ if err := json .Unmarshal (decodedQuery , & queryMap ); err != nil {
97
+ p .Logger .Error ("Failed to unmarshal query" , "error" , err )
98
+ return req , nil
99
+ }
100
+
84
101
model , err := tf .LoadSavedModel ("sqli_model" , []string {"serve" }, nil )
85
102
if err != nil {
86
103
p .Logger .Error ("Failed to load model" , "error" , err )
@@ -90,7 +107,7 @@ func (p *Plugin) OnTrafficFromClient(
90
107
91
108
// Create the JSON body from the map.
92
109
body , err := json .Marshal (map [string ]interface {}{
93
- "query" : query ,
110
+ "query" : queryMap [ "String" ] ,
94
111
})
95
112
if err != nil {
96
113
p .Logger .Error ("Failed to marshal query" , "error" , err )
0 commit comments