fix logins

This commit is contained in:
klizhentas 2016-04-05 10:53:08 -07:00
parent 383ebe2858
commit fb1ec24af6
3 changed files with 9 additions and 8 deletions

View file

@ -517,8 +517,8 @@ func (s *AuthServer) CreateOIDCAuthRequest(req services.OIDCAuthRequest) (*servi
// OIDCAuthResponse is returned when auth server validated callback parameters
// returned from OIDC provider
type OIDCAuthResponse struct {
// User is authenticated teleport user
User services.User `json:"user"`
// Username is authenticated teleport username
Username string `json:"username"`
// Web session will be generated by auth server if requested in OIDCAuthRequest
Session *Session `json:"session,omitempty"`
// Cert will be generated by certificate authority
@ -594,8 +594,8 @@ func (a *AuthServer) ValidateOIDCAuthCallback(q url.Values) (*OIDCAuthResponse,
}
response := &OIDCAuthResponse{
User: user,
Req: *req,
Username: user.GetName(),
Req: *req,
}
if req.CreateWebSession {

View file

@ -723,7 +723,7 @@ func (tc *TeleportClient) Login() error {
return trace.Wrap(err)
}
// in this case identity is returned by the proxy
tc.Config.Login = response.User.GetName()
tc.Config.Login = response.Username
}
// parse the returned&signed key:

View file

@ -302,13 +302,14 @@ func (m *Handler) oidcCallback(w http.ResponseWriter, r *http.Request, p httprou
log.Infof("oidcLogin validate: %#v", r.URL.Query())
response, err := m.cfg.ProxyClient.ValidateOIDCAuthCallback(r.URL.Query())
if err != nil {
log.Infof("VALIDATE error: %v", err)
return nil, trace.Wrap(err)
}
log.Infof("oidcCallback got response: %v", response)
// if we created web session, set session cookie and redirect to original url
if response.Req.CreateWebSession {
log.Infof("oidcCallback redirecting to web browser")
if err := SetSession(w, response.User.GetName(), response.Session.ID); err != nil {
if err := SetSession(w, response.Username, response.Session.ID); err != nil {
return nil, trace.Wrap(err)
}
http.Redirect(w, r, response.Req.ClientRedirectURL, http.StatusFound)
@ -323,7 +324,7 @@ func (m *Handler) oidcCallback(w http.ResponseWriter, r *http.Request, p httprou
return nil, trace.Wrap(err)
}
consoleResponse := SSHLoginResponse{
User: response.User,
Username: response.Username,
Cert: response.Cert,
HostSigners: response.HostSigners,
}
@ -1055,7 +1056,7 @@ type createSSHCertReq struct {
// SSHLoginResponse is a response returned by web proxy
type SSHLoginResponse struct {
// User contains a logged in user informationn
User services.User `json:"user"`
Username string `json:"username"`
// Cert is a signed certificate
Cert []byte `json:"cert"`
// HostSigners is a list of signing host public keys