summaryrefslogtreecommitdiff
path: root/pkg/test/oidc_server.go
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2025-05-07 09:37:04 -0700
committermo khan <mo@mokhan.ca>2025-05-07 09:37:04 -0700
commit61598cf8c8a2dbae368f3f8b15393c70d2e4fa9d (patch)
treecb216b680a118c4fa122c96faecfb20141dae019 /pkg/test/oidc_server.go
parentbe652dd283d8c42adddedc66d6ba9210d5bdb511 (diff)
refactor: move test server to oidc package
Diffstat (limited to 'pkg/test/oidc_server.go')
-rw-r--r--pkg/test/oidc_server.go87
1 files changed, 0 insertions, 87 deletions
diff --git a/pkg/test/oidc_server.go b/pkg/test/oidc_server.go
deleted file mode 100644
index c635df0..0000000
--- a/pkg/test/oidc_server.go
+++ /dev/null
@@ -1,87 +0,0 @@
-package test
-
-import (
- "net/http"
- "strconv"
- "testing"
- "time"
-
- "github.com/coreos/go-oidc/v3/oidc"
- "github.com/oauth2-proxy/mockoidc"
- "github.com/stretchr/testify/require"
- "golang.org/x/oauth2"
-)
-
-type TestServer struct {
- *mockoidc.MockOIDC
- *oauth2.Config
- *oidc.Provider
- *testing.T
-}
-
-func NewOIDCServer(t *testing.T) *TestServer {
- srv, err := mockoidc.Run()
- require.NoError(t, err)
-
- srv.AddMiddleware(func(next http.Handler) http.Handler {
- return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
- t.Logf("%v %v %v\n", r.Method, r.URL.Path, r.URL.Query())
- next.ServeHTTP(w, r)
- })
- })
-
- provider, err := oidc.NewProvider(t.Context(), srv.Issuer())
- require.NoError(t, err)
-
- config := &oauth2.Config{
- ClientID: srv.Config().ClientID,
- ClientSecret: srv.Config().ClientSecret,
- RedirectURL: "https://example.com/oauth/callback",
- Endpoint: provider.Endpoint(),
- Scopes: []string{oidc.ScopeOpenID, "profile", "email"},
- }
-
- return &TestServer{
- srv,
- config,
- provider,
- t,
- }
-}
-
-func (srv *TestServer) CreateAuthorizationCodeFor(user mockoidc.User) string {
- code := strconv.FormatInt(time.Now().Unix(), 10)
- srv.QueueUser(user)
- srv.QueueCode(code)
-
- http.Get(srv.AuthCodeURL("state"))
-
- return code
-}
-
-func (srv *TestServer) CreateTokenFor(user mockoidc.User) *oauth2.Token {
- code := srv.CreateAuthorizationCodeFor(user)
- token, err := srv.Exchange(srv.Context(), code)
- require.NoError(srv, err)
- return token
-}
-
-func (srv *TestServer) CreateTokensFor(user mockoidc.User) (*oauth2.Token, string) {
- token := srv.CreateTokenFor(user)
- rawIDToken, ok := token.Extra("id_token").(string)
- require.True(srv, ok)
- return token, rawIDToken
-}
-
-func (srv *TestServer) Verify(rawIDToken string) *oidc.IDToken {
- idToken, err := srv.
- Verifier(&oidc.Config{ClientID: srv.MockOIDC.Config().ClientID}).
- Verify(srv.Context(), rawIDToken)
- require.NoError(srv, err)
-
- return idToken
-}
-
-func (s *TestServer) Close() {
- s.Shutdown()
-}