mirror of
https://github.com/nais/wonderwall.git
synced 2026-05-10 10:27:02 +00:00
35 lines
1005 B
Go
35 lines
1005 B
Go
package mock
|
|
|
|
import (
|
|
"net/http/httptest"
|
|
|
|
"github.com/go-chi/chi/v5"
|
|
)
|
|
|
|
func IdentityProviderServer(iframe bool) (*httptest.Server, TestProvider, *identityProviderHandler) {
|
|
provider := NewTestProvider()
|
|
handler := newIdentityProviderHandler(provider)
|
|
router := identityProviderRouter(handler)
|
|
server := httptest.NewServer(router)
|
|
|
|
provider.OpenIDConfiguration.Issuer = server.URL
|
|
provider.OpenIDConfiguration.JwksURI = server.URL + "/jwks"
|
|
provider.OpenIDConfiguration.AuthorizationEndpoint = server.URL + "/authorize"
|
|
provider.OpenIDConfiguration.TokenEndpoint = server.URL + "/token"
|
|
provider.OpenIDConfiguration.EndSessionEndpoint = server.URL + "/endsession"
|
|
|
|
if iframe {
|
|
provider.OpenIDConfiguration.CheckSessionIframe = server.URL + "/checksession"
|
|
}
|
|
|
|
return server, provider, handler
|
|
}
|
|
|
|
func identityProviderRouter(ip *identityProviderHandler) chi.Router {
|
|
r := chi.NewRouter()
|
|
r.Get("/authorize", ip.Authorize)
|
|
r.Post("/token", ip.Token)
|
|
r.Get("/jwks", ip.Jwks)
|
|
return r
|
|
}
|