mirror of https://github.com/ory/hydra
55 lines
1.3 KiB
Go
55 lines
1.3 KiB
Go
// Copyright © 2023 Ory Corp
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package fositex
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"github.com/ory/hydra/v2/fosite/token/hmac"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
"github.com/ory/hydra/v2/fosite/handler/oauth2"
|
|
)
|
|
|
|
// Test that the generic signature function implements the same signature as the
|
|
// HMAC and JWT strategies.
|
|
func TestAccessTokenSignature(t *testing.T) {
|
|
ctx := context.Background()
|
|
|
|
t.Run("strategy=DefaultJWTStrategy", func(t *testing.T) {
|
|
strategy := new(oauth2.DefaultJWTStrategy)
|
|
for _, tc := range []struct{ token string }{
|
|
{""},
|
|
{"foo"},
|
|
// tokens with two parts will be handled by the HMAC strategy
|
|
{"foo.bar.baz"},
|
|
{"foo.bar.baz.qux"},
|
|
} {
|
|
t.Run("case="+tc.token, func(t *testing.T) {
|
|
assert.Equal(t,
|
|
strategy.AccessTokenSignature(ctx, tc.token),
|
|
genericSignature(tc.token))
|
|
})
|
|
}
|
|
})
|
|
t.Run("strategy=HMACStrategy", func(t *testing.T) {
|
|
strategy := oauth2.NewHMACSHAStrategy(&hmac.HMACStrategy{}, nil)
|
|
for _, tc := range []struct{ token string }{
|
|
{""},
|
|
{"foo"},
|
|
{"foo.bar"},
|
|
// tokens with three parts will be handled by the JWT strategy
|
|
{"foo.bar.baz.qux"},
|
|
} {
|
|
t.Run("case="+tc.token, func(t *testing.T) {
|
|
assert.Equal(t,
|
|
strategy.AccessTokenSignature(ctx, tc.token),
|
|
genericSignature(tc.token))
|
|
})
|
|
}
|
|
})
|
|
}
|