Merge pull request #30 from sonatype/master

Add /ping endpoint
This commit is contained in:
Jehiah Czebotar 2014-10-17 04:00:37 +02:00
commit cfad6acf8f
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, "OK")
}
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 {