From 8afb8b8d5fb036b2688b773596d5dd992ba63cf5 Mon Sep 17 00:00:00 2001 From: Kevin Schoonover Date: Tue, 12 Nov 2024 07:06:24 -0800 Subject: [PATCH] feat(pkg/op): allow custom SupportedScopes (#675) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Tim Möhlmann --- pkg/op/discovery.go | 8 ++++++-- pkg/op/discovery_test.go | 5 +++++ pkg/op/op.go | 1 + 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/pkg/op/discovery.go b/pkg/op/discovery.go index 5a79a09c..e30a5a4b 100644 --- a/pkg/op/discovery.go +++ b/pkg/op/discovery.go @@ -100,7 +100,11 @@ func createDiscoveryConfigV2(ctx context.Context, config Configuration, storage } func Scopes(c Configuration) []string { - return DefaultSupportedScopes // TODO: config + provider, ok := c.(*Provider) + if ok && provider.config.SupportedScopes != nil { + return provider.config.SupportedScopes + } + return DefaultSupportedScopes } func ResponseTypes(c Configuration) []string { @@ -135,7 +139,7 @@ func GrantTypes(c Configuration) []oidc.GrantType { } func SubjectTypes(c Configuration) []string { - return []string{"public"} //TODO: config + return []string{"public"} // TODO: config } func SigAlgorithms(ctx context.Context, storage DiscoverStorage) []string { diff --git a/pkg/op/discovery_test.go b/pkg/op/discovery_test.go index cb4cfba0..61afb62c 100644 --- a/pkg/op/discovery_test.go +++ b/pkg/op/discovery_test.go @@ -81,6 +81,11 @@ func Test_scopes(t *testing.T) { args{}, op.DefaultSupportedScopes, }, + { + "custom scopes", + args{newTestProvider(&op.Config{SupportedScopes: []string{"test1", "test2"}})}, + []string{"test1", "test2"}, + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { diff --git a/pkg/op/op.go b/pkg/op/op.go index 22480983..190c2c4f 100644 --- a/pkg/op/op.go +++ b/pkg/op/op.go @@ -167,6 +167,7 @@ type Config struct { RequestObjectSupported bool SupportedUILocales []language.Tag SupportedClaims []string + SupportedScopes []string DeviceAuthorization DeviceAuthorizationConfig BackChannelLogoutSupported bool BackChannelLogoutSessionSupported bool