@@ -22,9 +22,9 @@ import (
2222 "fmt"
2323 "net"
2424 "os"
25- "path"
2625 "time"
2726
27+ "github.com/davecgh/go-spew/spew"
2828 "github.com/gorilla/mux"
2929 "github.com/xrstf/mockoidc"
3030)
@@ -34,7 +34,7 @@ type Server struct {
3434 tlsConfig * tls.Config
3535}
3636
37- func New (caBundleFile string , listener net.Listener ) (* Server , error ) {
37+ func New (caBundleFile string , listener net.Listener , addrOverride string ) (* Server , error ) {
3838 // Add offline_access to supported scopes for refresh token support
3939 ensureOfflineAccessScope ()
4040 var tlsConfig * tls.Config
@@ -49,8 +49,9 @@ func New(caBundleFile string, listener net.Listener) (*Server, error) {
4949 }
5050
5151 server , err := mockoidc .NewServer (& mockoidc.ServerConfig {
52- TLSConfig : tlsConfig ,
53- Listener : listener ,
52+ TLSConfig : tlsConfig ,
53+ Listener : listener ,
54+ AddrOverride : addrOverride ,
5455 })
5556 if err != nil {
5657 return nil , fmt .Errorf ("failed to create mock OIDC server: %w" , err )
@@ -70,8 +71,9 @@ type Config struct {
7071
7172 CodeChallengeMethodsSupported []string
7273
73- // CallbackURL is kube-bind specific and must match API server endpoints.
74+ // CallbackURL and IssuerURL are kube-bind specific and must match API server endpoints.
7475 CallbackURL string
76+ IssuerURL string
7577}
7678
7779var ErrServerNotRunning = fmt .Errorf ("embedded OIDC server is not running" )
@@ -85,18 +87,21 @@ func (s *Server) AddRoutes(mux *mux.Router) {
8587}
8688
8789// URL returns the base URL of the embedded OIDC server.
88- func (s * Server ) Config () (* Config , error ) {
89- return & Config {
90+ func (s * Server ) Config (callbackURL , issuerURL string ) (* Config , error ) {
91+ c := & Config {
9092 ClientID : s .server .Config ().ClientID ,
9193 ClientSecret : s .server .Config ().ClientSecret ,
92- Issuer : s . server . Config (). Issuer ,
94+ Issuer : issuerURL , // This overrided default fake OIDC issuer URL. Must match what it is served at.
9395
9496 AccessTTL : s .server .Config ().AccessTTL ,
9597 RefreshTTL : s .server .Config ().RefreshTTL ,
9698
9799 CodeChallengeMethodsSupported : s .server .Config ().CodeChallengeMethodsSupported ,
98- CallbackURL : path .Join (s .server .Addr (), "api/callback" ),
99- }, nil
100+ CallbackURL : callbackURL ,
101+ IssuerURL : issuerURL ,
102+ }
103+ spew .Dump (c )
104+ return c , nil
100105}
101106
102107func LoadTLSConfig (caFile string ) (* tls.Config , error ) {
0 commit comments