@ -52,7 +52,7 @@ type oidcClaimsFinder interface {
|
||||
|
||||
// TemplateRenderer renders a template with data and writes it to a http.ResponseWriter.
|
||||
type TemplateRenderer interface {
|
||||
RenderTemplate(w http.ResponseWriter, name string, data interface{}) error
|
||||
RenderTemplate(w http.ResponseWriter, r *http.Request, name string, data interface{}) error
|
||||
}
|
||||
|
||||
// LoginTmplData is a data that is needed for rendering the login page.
|
||||
@ -147,7 +147,7 @@ func newLoginStartHandler(rproc oa2LoginReqProcessor, tmplRenderer TemplateRende
|
||||
Challenge: challenge,
|
||||
LoginURL: strings.TrimPrefix(r.URL.String(), "/"),
|
||||
}
|
||||
if err := tmplRenderer.RenderTemplate(w, loginTmplName, data); err != nil {
|
||||
if err := tmplRenderer.RenderTemplate(w, r, loginTmplName, data); err != nil {
|
||||
log.Infow("Failed to render a login page template", zap.Error(err))
|
||||
http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError)
|
||||
return
|
||||
@ -180,7 +180,7 @@ func newLoginEndHandler(ra oa2LoginReqAcceptor, auther authenticator, tmplRender
|
||||
data.IsInternalError = true
|
||||
log.Infow("Failed to authenticate a login request via the OAuth2 provider",
|
||||
zap.Error(err), "challenge", challenge, "username", username)
|
||||
if err = tmplRenderer.RenderTemplate(w, loginTmplName, data); err != nil {
|
||||
if err = tmplRenderer.RenderTemplate(w, r, loginTmplName, data); err != nil {
|
||||
log.Infow("Failed to render a login page template", zap.Error(err))
|
||||
http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError)
|
||||
}
|
||||
@ -188,7 +188,7 @@ func newLoginEndHandler(ra oa2LoginReqAcceptor, auther authenticator, tmplRender
|
||||
case !ok:
|
||||
data.IsInvalidCredentials = true
|
||||
log.Debugw("Invalid credentials", zap.Error(err), "challenge", challenge, "username", username)
|
||||
if err = tmplRenderer.RenderTemplate(w, loginTmplName, data); err != nil {
|
||||
if err = tmplRenderer.RenderTemplate(w, r, loginTmplName, data); err != nil {
|
||||
log.Infow("Failed to render a login page template", zap.Error(err))
|
||||
http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError)
|
||||
}
|
||||
@ -201,7 +201,7 @@ func newLoginEndHandler(ra oa2LoginReqAcceptor, auther authenticator, tmplRender
|
||||
if err != nil {
|
||||
data.IsInternalError = true
|
||||
log.Infow("Failed to accept a login request via the OAuth2 provider", zap.Error(err))
|
||||
if err := tmplRenderer.RenderTemplate(w, loginTmplName, data); err != nil {
|
||||
if err := tmplRenderer.RenderTemplate(w, r, loginTmplName, data); err != nil {
|
||||
log.Infow("Failed to render a login page template", zap.Error(err))
|
||||
http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError)
|
||||
}
|
||||
|
@ -98,7 +98,7 @@ func TestHandleLoginStart(t *testing.T) {
|
||||
rr := httptest.NewRecorder()
|
||||
|
||||
tmplRenderer := &testTemplateRenderer{
|
||||
renderTmplFunc: func(w http.ResponseWriter, name string, data interface{}) error {
|
||||
renderTmplFunc: func(w http.ResponseWriter, r *http.Request, name string, data interface{}) error {
|
||||
if name != "login.tmpl" {
|
||||
t.Fatalf("wrong template name: got %q; want \"login.tmpl\"", name)
|
||||
}
|
||||
@ -264,7 +264,7 @@ func TestHandleLoginEnd(t *testing.T) {
|
||||
rr := httptest.NewRecorder()
|
||||
|
||||
tmplRenderer := &testTemplateRenderer{
|
||||
renderTmplFunc: func(w http.ResponseWriter, name string, data interface{}) error {
|
||||
renderTmplFunc: func(w http.ResponseWriter, r *http.Request, name string, data interface{}) error {
|
||||
if name != "login.tmpl" {
|
||||
t.Fatalf("wrong template name: got %q; want \"login.tmpl\"", name)
|
||||
}
|
||||
@ -327,11 +327,11 @@ func TestHandleLoginEnd(t *testing.T) {
|
||||
}
|
||||
|
||||
type testTemplateRenderer struct {
|
||||
renderTmplFunc func(w http.ResponseWriter, name string, data interface{}) error
|
||||
renderTmplFunc func(w http.ResponseWriter, r *http.Request, name string, data interface{}) error
|
||||
}
|
||||
|
||||
func (tl *testTemplateRenderer) RenderTemplate(w http.ResponseWriter, name string, data interface{}) error {
|
||||
return tl.renderTmplFunc(w, name, data)
|
||||
func (tl *testTemplateRenderer) RenderTemplate(w http.ResponseWriter, r *http.Request, name string, data interface{}) error {
|
||||
return tl.renderTmplFunc(w, r, name, data)
|
||||
}
|
||||
|
||||
type testAuthenticator struct {
|
||||
|
Reference in New Issue
Block a user