authorize: rewrite header evaluator to use go instead of rego (#5362)

* authorize: rewrite header evaluator to use go instead of rego

* cache signed jwt

* re-add missing trace

* address comments
This commit is contained in:
Caleb Doxsey 2024-11-07 13:07:16 -07:00 committed by GitHub
parent 177f789e63
commit 37017e2a5b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 576 additions and 411 deletions

View file

@ -60,8 +60,7 @@ func BenchmarkHeadersEvaluator(b *testing.B) {
s.UpdateJWTClaimHeaders(config.NewJWTClaimHeaders("email", "groups", "user", "CUSTOM_KEY"))
s.UpdateSigningKey(privateJWK)
e, err := NewHeadersEvaluator(ctx, s, rego.Time(iat))
require.NoError(b, err)
e := NewHeadersEvaluator(s)
req := &HeadersRequest{
EnableRoutingKey: true,
@ -198,14 +197,13 @@ func TestHeadersEvaluator(t *testing.T) {
iat := time.Unix(1686870680, 0)
eval := func(t *testing.T, data []proto.Message, input *HeadersRequest) (*HeadersResponse, error) {
eval := func(_ *testing.T, data []proto.Message, input *HeadersRequest) (*HeadersResponse, error) {
ctx := context.Background()
ctx = storage.WithQuerier(ctx, storage.NewStaticQuerier(data...))
store := store.New()
store.UpdateJWTClaimHeaders(config.NewJWTClaimHeaders("name", "email", "groups", "user", "CUSTOM_KEY"))
store.UpdateSigningKey(privateJWK)
e, err := NewHeadersEvaluator(ctx, store, rego.Time(iat))
require.NoError(t, err)
e := NewHeadersEvaluator(store)
return e.Evaluate(ctx, input, rego.EvalTime(iat))
}