Update login controller to return 403 for redirection

As the UI cannot handle 302, update the login controller to return 403
and put the redirection URL in a json response body.

Signed-off-by: Daniel Jiang <jiangd@vmware.com>
This commit is contained in:
Daniel Jiang 2019-05-13 17:35:45 +08:00
parent 129983a5ed
commit 9809847e25

View File

@ -91,7 +91,11 @@ func (cc *CommonController) Login() {
}
url := strings.TrimSuffix(ep, "/") + common.OIDCLoginPath
log.Debugf("Redirect user %s to login page of OIDC provider", principal)
cc.Redirect(url, http.StatusFound)
// Return a json to UI with status code 403, as it cannot handle status 302
cc.Ctx.Output.Status = http.StatusForbidden
cc.Ctx.Output.JSON(struct {
Location string `json:"redirect_location"`
}{url}, false, false)
return
}