Skip to content

Commit 7de618a

Browse files
authored
Merge pull request #501 from Kuadrant/fix/rawextension-to-str
fix: RawExtension to string conversion
2 parents 82d7619 + 113717d commit 7de618a

File tree

4 files changed

+27
-5
lines changed

4 files changed

+27
-5
lines changed

pkg/evaluators/authorization/authzed.go

+16-3
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66

77
"github.com/kuadrant/authorino/pkg/auth"
88
"github.com/kuadrant/authorino/pkg/expressions"
9+
"github.com/kuadrant/authorino/pkg/json"
910
"google.golang.org/grpc"
1011
insecuregrpc "google.golang.org/grpc/credentials/insecure"
1112

@@ -60,10 +61,14 @@ func (a *Authzed) Call(pipeline auth.AuthPipeline, ctx gocontext.Context) (inter
6061
if err != nil {
6162
return nil, err
6263
}
64+
permissionStr, err := json.StringifyJSON(permission)
65+
if err != nil {
66+
return nil, err
67+
}
6368
resp, err := client.CheckPermission(ctx, &authzedpb.CheckPermissionRequest{
6469
Resource: resource,
6570
Subject: &authzedpb.SubjectReference{Object: object},
66-
Permission: fmt.Sprintf("%s", permission),
71+
Permission: permissionStr,
6772
})
6873
if err != nil {
6974
return nil, err
@@ -91,12 +96,20 @@ func authzedObjectFor(name, kind expressions.Value, authJSON string) (*authzedpb
9196
if err != nil {
9297
return nil, err
9398
}
99+
objectIdStr, err := json.StringifyJSON(objectId)
100+
if err != nil {
101+
return nil, err
102+
}
94103
objectType, err := kind.ResolveFor(authJSON)
95104
if err != nil {
96105
return nil, err
97106
}
107+
objectTypeStr, err := json.StringifyJSON(objectType)
108+
if err != nil {
109+
return nil, err
110+
}
98111
return &authzedpb.ObjectReference{
99-
ObjectId: fmt.Sprintf("%s", objectId),
100-
ObjectType: fmt.Sprintf("%s", objectType),
112+
ObjectId: objectIdStr,
113+
ObjectType: objectTypeStr,
101114
}, nil
102115
}

pkg/evaluators/authorization/kubernetes_authz.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"github.com/kuadrant/authorino/pkg/auth"
99
"github.com/kuadrant/authorino/pkg/context"
1010
"github.com/kuadrant/authorino/pkg/expressions"
11+
"github.com/kuadrant/authorino/pkg/json"
1112
"github.com/kuadrant/authorino/pkg/log"
1213

1314
kubeAuthz "k8s.io/api/authorization/v1"
@@ -71,7 +72,7 @@ func (k *KubernetesAuthz) Call(pipeline auth.AuthPipeline, ctx gocontext.Context
7172
if err != nil {
7273
return "", err
7374
}
74-
return fmt.Sprintf("%s", resolved), nil
75+
return json.StringifyJSON(resolved)
7576
}
7677

7778
user, err := jsonValueToStr(k.User)

pkg/evaluators/metadata/generic_http.go

+5-1
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,11 @@ func (h *GenericHttp) buildRequest(ctx gocontext.Context, endpoint, authJSON str
142142
if err != nil {
143143
return nil, err
144144
}
145-
req.Header.Set(header.Name, fmt.Sprintf("%s", headerValue))
145+
headerValueStr, err := json.StringifyJSON(headerValue)
146+
if err != nil {
147+
return nil, err
148+
}
149+
req.Header.Set(header.Name, headerValueStr)
146150
}
147151

148152
req.Header.Set("Content-Type", contentType)

pkg/json/json.go

+4
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,10 @@ func ReplaceJSONPlaceholders(source string, jsonData string) string {
157157
}
158158

159159
func StringifyJSON(data interface{}) (string, error) {
160+
_, ok := data.(string)
161+
if ok {
162+
return data.(string), nil
163+
}
160164
if dataAsJSON, err := json.Marshal(data); err != nil {
161165
return "", err
162166
} else {

0 commit comments

Comments
 (0)