Add /ping endpoint

This commit is contained in:
Jason Swank 2014-10-14 16:22:38 -04:00
parent 1c0989ff58
commit 8702ad2e52
2 changed files with 12 additions and 0 deletions

View File

@ -110,6 +110,7 @@ The environment variables `google_auth_client_id`, `google_auth_secret` and `goo
Google auth proxy responds directly to the following endpoints. All other endpoints will be authenticated. Google auth proxy responds directly to the following endpoints. All other endpoints will be authenticated.
* /ping - returns an 200 OK response
* /oauth2/sign_in - the login page, which also doubles as a sign out page (it clears cookies) * /oauth2/sign_in - the login page, which also doubles as a sign out page (it clears cookies)
* /oauth2/start - a URL that will redirect to start the oauth cycle * /oauth2/start - a URL that will redirect to start the oauth cycle
* /oauth2/callback - the URL used at the end of the oauth cycle * /oauth2/callback - the URL used at the end of the oauth cycle

View File

@ -16,6 +16,7 @@ import (
"github.com/bitly/go-simplejson" "github.com/bitly/go-simplejson"
) )
const pingPath = "/ping"
const signInPath = "/oauth2/sign_in" const signInPath = "/oauth2/sign_in"
const oauthStartPath = "/oauth2/start" const oauthStartPath = "/oauth2/start"
const oauthCallbackPath = "/oauth2/callback" const oauthCallbackPath = "/oauth2/callback"
@ -192,6 +193,11 @@ func (p *OauthProxy) SetCookie(rw http.ResponseWriter, req *http.Request, val st
http.SetCookie(rw, cookie) http.SetCookie(rw, cookie)
} }
func (p *OauthProxy) PingPage(rw http.ResponseWriter) {
rw.WriteHeader(http.StatusOK)
fmt.Fprintf(rw, "pong")
}
func (p *OauthProxy) ErrorPage(rw http.ResponseWriter, code int, title string, message string) { func (p *OauthProxy) ErrorPage(rw http.ResponseWriter, code int, title string, message string) {
log.Printf("ErrorPage %d %s %s", code, title, message) log.Printf("ErrorPage %d %s %s", code, title, message)
rw.WriteHeader(code) rw.WriteHeader(code)
@ -267,6 +273,11 @@ func (p *OauthProxy) ServeHTTP(rw http.ResponseWriter, req *http.Request) {
var ok bool var ok bool
var user string var user string
if req.URL.Path == pingPath {
p.PingPage(rw)
return
}
if req.URL.Path == signInPath { if req.URL.Path == signInPath {
redirect, err := p.GetRedirect(req) redirect, err := p.GetRedirect(req)
if err != nil { if err != nil {