diff --git a/server/server.go b/server/server.go index e299e32f7d8ef2608c5dbf95a55624f2e20701b1..5c5faa3003688e57d2a9d81b21db21f46f385766 100644 --- a/server/server.go +++ b/server/server.go @@ -443,6 +443,20 @@ func newServer(ctx context.Context, c Config, rotationStrategy rotationStrategy) return nil, err } handleWithCORS("/.well-known/openid-configuration", discoveryHandler) + // Handle the root path for the better user experience. + handleWithCORS("/", func(w http.ResponseWriter, r *http.Request) { + _, err := fmt.Fprintf(w, `<!DOCTYPE html> + <title>Dex</title> + <h1>Dex IdP</h1> + <h3>A Federated OpenID Connect Provider</h3> + <p><a href=%q>Discovery</a></p>`, + s.issuerURL.String()+"/.well-known/openid-configuration") + if err != nil { + s.logger.Error("failed to write response", "err", err) + s.renderError(r, w, http.StatusInternalServerError, "Handling the / path error.") + return + } + }) // TODO(ericchiang): rate limit certain paths based on IP. handleWithCORS("/token", s.handleToken)