diff options
| -rw-r--r-- | app/app.go | 3 | ||||
| -rw-r--r-- | app/controllers/sessions/controller.go | 2 | ||||
| -rw-r--r-- | pkg/oidc/id_token.go | 4 | ||||
| -rw-r--r-- | pkg/oidc/tokens.go | 2 | ||||
| -rw-r--r-- | pkg/oidc/tokens_test.go | 2 | ||||
| -rw-r--r-- | pkg/web/middleware/enforce_authn.go | 1 | ||||
| -rw-r--r-- | pkg/web/middleware/enforce_authn_test.go | 11 | ||||
| -rw-r--r-- | pkg/web/middleware/id_token.go (renamed from pkg/web/middleware/unpack_token.go) | 8 | ||||
| -rw-r--r-- | pkg/web/middleware/id_token_test.go (renamed from pkg/web/middleware/unpack_token_test.go) | 6 |
9 files changed, 14 insertions, 25 deletions
@@ -34,5 +34,6 @@ func New(rootDir string) http.Handler { logger := ioc.MustResolve[*zerolog.Logger](ioc.Default) oidc := ioc.MustResolve[*oidc.OpenID](ioc.Default) - return log.HTTP(logger)(middleware.UnpackToken(oidc)(mux)) + + return log.HTTP(logger)(middleware.IDToken(oidc)(mux)) } diff --git a/app/controllers/sessions/controller.go b/app/controllers/sessions/controller.go index 7993b3a..050a22d 100644 --- a/app/controllers/sessions/controller.go +++ b/app/controllers/sessions/controller.go @@ -44,7 +44,7 @@ func (c *Controller) Create(w http.ResponseWriter, r *http.Request) { tokens := &oidc.Tokens{Token: token} if rawIDToken, ok := token.Extra("id_token").(string); ok { - tokens.IDToken = oidc.RawIDToken(rawIDToken) + tokens.IDToken = oidc.RawToken(rawIDToken) } encoded, err := tokens.ToBase64String() diff --git a/pkg/oidc/id_token.go b/pkg/oidc/id_token.go index e53b0a1..e708eb3 100644 --- a/pkg/oidc/id_token.go +++ b/pkg/oidc/id_token.go @@ -4,8 +4,8 @@ import "github.com/coreos/go-oidc/v3/oidc" type IDToken = oidc.IDToken -type RawIDToken string +type RawToken string -func (r RawIDToken) String() string { +func (r RawToken) String() string { return string(r) } diff --git a/pkg/oidc/tokens.go b/pkg/oidc/tokens.go index 908e3a7..70d3a3d 100644 --- a/pkg/oidc/tokens.go +++ b/pkg/oidc/tokens.go @@ -11,7 +11,7 @@ import ( type Tokens struct { *oauth2.Token - IDToken RawIDToken `json:"id_token"` + IDToken RawToken `json:"id_token"` } func (t *Tokens) ToBase64String() (string, error) { diff --git a/pkg/oidc/tokens_test.go b/pkg/oidc/tokens_test.go index 83eecc6..42c470d 100644 --- a/pkg/oidc/tokens_test.go +++ b/pkg/oidc/tokens_test.go @@ -66,7 +66,7 @@ func TestTokens(t *testing.T) { assert.Equal(t, "Bearer", result.TokenType) assert.Equal(t, "refresh_token", result.RefreshToken) assert.Equal(t, int64(3600), result.ExpiresIn) - assert.Equal(t, RawIDToken("eyJ0eXAiOiJKV1QiLCJraWQiOiJ0ZDBTbWRKUTRxUGg1cU5Lek0yNjBDWHgyVWgtd2hHLU1Eam9PS1dmdDhFIiwiYWxnIjoiUlMyNTYifQ.eyJpc3MiOiJodHRwOi8vZ2RrLnRlc3Q6MzAwMCIsInN1YiI6IjEiLCJhdWQiOiJlMzFlMWRhMGI4ZjZiNmUzNWNhNzBjNzkwYjEzYzA0MDZlNDRhY2E2YjJiZjY3ZjU1ZGU3MzU1YTk3OWEyMjRmIiwiZXhwIjoxNzQ0NzM3NDI3LCJpYXQiOjE3NDQ3MzczMDcsImF1dGhfdGltZSI6MTc0NDczNDY0OSwic3ViX2xlZ2FjeSI6IjI0NzRjZjBiMjIxMTY4OGE1NzI5N2FjZTBlMjYwYTE1OTQ0NzU0ZDE2YjFiZDQyYzlkNjc3OWM5MDAzNjc4MDciLCJuYW1lIjoiQWRtaW5pc3RyYXRvciIsIm5pY2tuYW1lIjoicm9vdCIsInByZWZlcnJlZF91c2VybmFtZSI6InJvb3QiLCJlbWFpbCI6ImFkbWluQGV4YW1wbGUuY29tIiwiZW1haWxfdmVyaWZpZWQiOnRydWUsInByb2ZpbGUiOiJodHRwOi8vZ2RrLnRlc3Q6MzAwMC9yb290IiwicGljdHVyZSI6Imh0dHBzOi8vd3d3LmdyYXZhdGFyLmNvbS9hdmF0YXIvMjU4ZDhkYzkxNmRiOGNlYTJjYWZiNmMzY2QwY2IwMjQ2ZWZlMDYxNDIxZGJkODNlYzNhMzUwNDI4Y2FiZGE0Zj9zPTgwJmQ9aWRlbnRpY29uIiwiZ3JvdXBzX2RpcmVjdCI6WyJ0b29sYm94IiwiZ2l0bGFiLW9yZyIsImdudXdnZXQiLCJDb21taXQ0NTEiLCJqYXNoa2VuYXMiLCJmbGlnaHRqcyIsInR3aXR0ZXIiLCJnaXRsYWItZXhhbXBsZXMiLCJnaXRsYWItZXhhbXBsZXMvc2VjdXJpdHkiLCI0MTI3MDgiLCJnaXRsYWItZXhhbXBsZXMvZGVtby1ncm91cCIsImN1c3RvbS1yb2xlcy1yb290LWdyb3VwIiwiNDM0MDQ0LWdyb3VwLTEiLCI0MzQwNDQtZ3JvdXAtMiIsImdpdGxhYi1vcmcxIiwiZ2l0bGFiLW9yZy9zZWN1cmUiLCJnaXRsYWItb3JnL3NlY3VyZS9tYW5hZ2VycyIsImdpdGxhYi1vcmcvc2VjdXJpdHktcHJvZHVjdHMiLCJnaXRsYWItb3JnL3NlY3VyaXR5LXByb2R1Y3RzL2FuYWx5emVycyIsImN1c3RvbS1yb2xlcy1yb290LWdyb3VwL2FhIiwiY3VzdG9tLXJvbGVzLXJvb3QtZ3JvdXAvYWEvYWFhIiwibWFzc19pbnNlcnRfZ3JvdXBfXzBfMTAwIl19.SZu_l7tQ2Kkeogq0z8cRaDWPfv52JTo-RkiExbnud_lrfrXXneS77BIzaGKX_bzq4SM_oO_Q63AzK66B1r6Gp7ACo4DjOUEIWETg7ZBKcDzEZnresB7kmI_MJ5rfIJTmnH75GOfc_pl5l8T896TbaShN6zSpaXXIVEfhyUrflSWb4hhA7Hbwy2b6laXiaDv0qpcn1udPVYMTsll8I5ni_2yzuEPSVRgrcQoQ46OwVDZIi9tlfdT2qNVjH6FxJ3mkBcxtIVjf3_JYAawFEscg2uvQYwFWj9T6LleMknAh3QFJJMrS6mPqlXJGPUE5pTQgsBInfEikfm9PXxezA-IY6g"), result.IDToken) + assert.Equal(t, RawToken("eyJ0eXAiOiJKV1QiLCJraWQiOiJ0ZDBTbWRKUTRxUGg1cU5Lek0yNjBDWHgyVWgtd2hHLU1Eam9PS1dmdDhFIiwiYWxnIjoiUlMyNTYifQ.eyJpc3MiOiJodHRwOi8vZ2RrLnRlc3Q6MzAwMCIsInN1YiI6IjEiLCJhdWQiOiJlMzFlMWRhMGI4ZjZiNmUzNWNhNzBjNzkwYjEzYzA0MDZlNDRhY2E2YjJiZjY3ZjU1ZGU3MzU1YTk3OWEyMjRmIiwiZXhwIjoxNzQ0NzM3NDI3LCJpYXQiOjE3NDQ3MzczMDcsImF1dGhfdGltZSI6MTc0NDczNDY0OSwic3ViX2xlZ2FjeSI6IjI0NzRjZjBiMjIxMTY4OGE1NzI5N2FjZTBlMjYwYTE1OTQ0NzU0ZDE2YjFiZDQyYzlkNjc3OWM5MDAzNjc4MDciLCJuYW1lIjoiQWRtaW5pc3RyYXRvciIsIm5pY2tuYW1lIjoicm9vdCIsInByZWZlcnJlZF91c2VybmFtZSI6InJvb3QiLCJlbWFpbCI6ImFkbWluQGV4YW1wbGUuY29tIiwiZW1haWxfdmVyaWZpZWQiOnRydWUsInByb2ZpbGUiOiJodHRwOi8vZ2RrLnRlc3Q6MzAwMC9yb290IiwicGljdHVyZSI6Imh0dHBzOi8vd3d3LmdyYXZhdGFyLmNvbS9hdmF0YXIvMjU4ZDhkYzkxNmRiOGNlYTJjYWZiNmMzY2QwY2IwMjQ2ZWZlMDYxNDIxZGJkODNlYzNhMzUwNDI4Y2FiZGE0Zj9zPTgwJmQ9aWRlbnRpY29uIiwiZ3JvdXBzX2RpcmVjdCI6WyJ0b29sYm94IiwiZ2l0bGFiLW9yZyIsImdudXdnZXQiLCJDb21taXQ0NTEiLCJqYXNoa2VuYXMiLCJmbGlnaHRqcyIsInR3aXR0ZXIiLCJnaXRsYWItZXhhbXBsZXMiLCJnaXRsYWItZXhhbXBsZXMvc2VjdXJpdHkiLCI0MTI3MDgiLCJnaXRsYWItZXhhbXBsZXMvZGVtby1ncm91cCIsImN1c3RvbS1yb2xlcy1yb290LWdyb3VwIiwiNDM0MDQ0LWdyb3VwLTEiLCI0MzQwNDQtZ3JvdXAtMiIsImdpdGxhYi1vcmcxIiwiZ2l0bGFiLW9yZy9zZWN1cmUiLCJnaXRsYWItb3JnL3NlY3VyZS9tYW5hZ2VycyIsImdpdGxhYi1vcmcvc2VjdXJpdHktcHJvZHVjdHMiLCJnaXRsYWItb3JnL3NlY3VyaXR5LXByb2R1Y3RzL2FuYWx5emVycyIsImN1c3RvbS1yb2xlcy1yb290LWdyb3VwL2FhIiwiY3VzdG9tLXJvbGVzLXJvb3QtZ3JvdXAvYWEvYWFhIiwibWFzc19pbnNlcnRfZ3JvdXBfXzBfMTAwIl19.SZu_l7tQ2Kkeogq0z8cRaDWPfv52JTo-RkiExbnud_lrfrXXneS77BIzaGKX_bzq4SM_oO_Q63AzK66B1r6Gp7ACo4DjOUEIWETg7ZBKcDzEZnresB7kmI_MJ5rfIJTmnH75GOfc_pl5l8T896TbaShN6zSpaXXIVEfhyUrflSWb4hhA7Hbwy2b6laXiaDv0qpcn1udPVYMTsll8I5ni_2yzuEPSVRgrcQoQ46OwVDZIi9tlfdT2qNVjH6FxJ3mkBcxtIVjf3_JYAawFEscg2uvQYwFWj9T6LleMknAh3QFJJMrS6mPqlXJGPUE5pTQgsBInfEikfm9PXxezA-IY6g"), result.IDToken) }) }) } diff --git a/pkg/web/middleware/enforce_authn.go b/pkg/web/middleware/enforce_authn.go deleted file mode 100644 index c870d7c..0000000 --- a/pkg/web/middleware/enforce_authn.go +++ /dev/null @@ -1 +0,0 @@ -package middleware diff --git a/pkg/web/middleware/enforce_authn_test.go b/pkg/web/middleware/enforce_authn_test.go deleted file mode 100644 index 285db5b..0000000 --- a/pkg/web/middleware/enforce_authn_test.go +++ /dev/null @@ -1,11 +0,0 @@ -package middleware - -import "testing" - -func TestEnforceAuthn(t *testing.T) { - t.Run("when an active session cookie is provided", func(t *testing.T) { - t.Run("attaches a user to the request context", func(t *testing.T) { - - }) - }) -} diff --git a/pkg/web/middleware/unpack_token.go b/pkg/web/middleware/id_token.go index 0b182a0..a32c77b 100644 --- a/pkg/web/middleware/unpack_token.go +++ b/pkg/web/middleware/id_token.go @@ -9,9 +9,9 @@ import ( "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/oidc" ) -type TokenParser func(*http.Request) oidc.RawIDToken +type TokenParser func(*http.Request) oidc.RawToken -func FromSessionCookie(r *http.Request) oidc.RawIDToken { +func IDTokenFromSessionCookie(r *http.Request) oidc.RawToken { cookies := r.CookiesNamed("session") if len(cookies) != 1 { @@ -27,8 +27,8 @@ func FromSessionCookie(r *http.Request) oidc.RawIDToken { return tokens.IDToken } -func UnpackToken(cfg *oidc.OpenID) func(http.Handler) http.Handler { - parsers := []TokenParser{FromSessionCookie} +func IDToken(cfg *oidc.OpenID) func(http.Handler) http.Handler { + parsers := []TokenParser{IDTokenFromSessionCookie} return func(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { diff --git a/pkg/web/middleware/unpack_token_test.go b/pkg/web/middleware/id_token_test.go index 116e88f..4f26cdf 100644 --- a/pkg/web/middleware/unpack_token_test.go +++ b/pkg/web/middleware/id_token_test.go @@ -20,7 +20,7 @@ import ( "golang.org/x/oauth2" ) -func TestUnpackToken(t *testing.T) { +func TestIDToken(t *testing.T) { srv := test.NewOIDCServer(t) defer srv.Close() @@ -36,14 +36,14 @@ func TestUnpackToken(t *testing.T) { ) require.NoError(t, err) - middleware := UnpackToken(openID) + middleware := IDToken(openID) t.Run("when an active session cookie is provided", func(t *testing.T) { t.Run("attaches the token to the request context", func(t *testing.T) { user := mockoidc.DefaultUser() token, rawIDToken := srv.CreateTokensFor(user) - tokens := &oidc.Tokens{Token: token, IDToken: oidc.RawIDToken(rawIDToken)} + tokens := &oidc.Tokens{Token: token, IDToken: oidc.RawToken(rawIDToken)} encoded := x.Must(tokens.ToBase64String()) server := middleware(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { |
