mirror of
https://github.com/gravitational/teleport.git
synced 2026-09-24 16:17:11 +08:00
Removed CreateWebSession endpoint.
This commit is contained in:
committed by
Russell Jones
parent
9135a5ade7
commit
04b4469a66
+7
-10
@@ -96,7 +96,7 @@ func NewAPIServer(config *APIConfig) http.Handler {
|
||||
srv.PUT("/:version/users/:user/web/password", srv.withAuth(srv.changePassword))
|
||||
srv.POST("/:version/users/:user/web/password", srv.withAuth(srv.upsertPassword))
|
||||
srv.POST("/:version/users/:user/web/password/check", srv.withAuth(srv.checkPassword))
|
||||
srv.POST("/:version/users/:user/web/sessions", srv.withAuth(srv.createWebSession))
|
||||
srv.POST("/:version/users/:user/web/sessions", srv.withAuth(srv.extendWebSession))
|
||||
srv.POST("/:version/users/:user/web/authenticate", srv.withAuth(srv.authenticateWebUser))
|
||||
srv.POST("/:version/users/:user/ssh/authenticate", srv.withAuth(srv.authenticateSSHUser))
|
||||
srv.GET("/:version/users/:user/web/sessions/:sid", srv.withAuth(srv.getWebSession))
|
||||
@@ -724,24 +724,21 @@ type createWebSessionReq struct {
|
||||
PrevSessionID string `json:"prev_session_id"`
|
||||
}
|
||||
|
||||
func (s *APIServer) createWebSession(auth ClientI, w http.ResponseWriter, r *http.Request, p httprouter.Params, version string) (interface{}, error) {
|
||||
func (s *APIServer) extendWebSession(auth ClientI, w http.ResponseWriter, r *http.Request, p httprouter.Params, version string) (interface{}, error) {
|
||||
var req *createWebSessionReq
|
||||
if err := httplib.ReadJSON(r, &req); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
}
|
||||
user := p.ByName("user")
|
||||
if req.PrevSessionID != "" {
|
||||
sess, err := auth.ExtendWebSession(user, req.PrevSessionID)
|
||||
if err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
}
|
||||
return sess, nil
|
||||
if req.PrevSessionID == "" {
|
||||
return nil, trace.BadParameter("previous session ID missing")
|
||||
}
|
||||
sess, err := auth.CreateWebSession(user)
|
||||
|
||||
sess, err := auth.ExtendWebSession(user, req.PrevSessionID)
|
||||
if err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
}
|
||||
return rawMessage(services.GetWebSessionMarshaler().MarshalWebSession(sess, services.WithVersion(version)))
|
||||
return sess, nil
|
||||
}
|
||||
|
||||
func (s *APIServer) authenticateWebUser(auth ClientI, w http.ResponseWriter, r *http.Request, p httprouter.Params, version string) (interface{}, error) {
|
||||
|
||||
@@ -739,28 +739,6 @@ func (s *AuthServer) ExtendWebSession(user string, prevSessionID string, identit
|
||||
return sess, nil
|
||||
}
|
||||
|
||||
// CreateWebSession creates a new web session for user without any
|
||||
// checks, is used by admins
|
||||
func (s *AuthServer) CreateWebSession(user string, identity *tlsca.Identity) (services.WebSession, error) {
|
||||
fmt.Printf("--> CreateWebSession: %v.\n", identity.Username)
|
||||
roles, traits, err := services.ExtractFromIdentity(s, identity)
|
||||
if err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
}
|
||||
sess, err := s.NewWebSession(user, roles, traits)
|
||||
if err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
}
|
||||
if err := s.UpsertWebSession(user, sess); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
}
|
||||
sess, err = services.GetWebSessionMarshaler().GenerateWebSession(sess)
|
||||
if err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
}
|
||||
return sess, nil
|
||||
}
|
||||
|
||||
// GenerateTokenRequest is a request to generate auth token
|
||||
type GenerateTokenRequest struct {
|
||||
// Token if provided sets the token value, otherwise will be auto generated
|
||||
|
||||
@@ -742,13 +742,6 @@ func (a *AuthWithRoles) GetU2FSignRequest(user string, password []byte) (*u2f.Si
|
||||
return a.authServer.U2FSignRequest(user, password)
|
||||
}
|
||||
|
||||
func (a *AuthWithRoles) CreateWebSession(user string) (services.WebSession, error) {
|
||||
if err := a.currentUserAction(user); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
}
|
||||
return a.authServer.CreateWebSession(user, &a.identity)
|
||||
}
|
||||
|
||||
func (a *AuthWithRoles) ExtendWebSession(user, prevSessionID string) (services.WebSession, error) {
|
||||
if err := a.currentUserAction(user); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
|
||||
@@ -1362,18 +1362,6 @@ func (c *Client) ExtendWebSession(user string, prevSessionID string) (services.W
|
||||
return services.GetWebSessionMarshaler().UnmarshalWebSession(out.Bytes())
|
||||
}
|
||||
|
||||
// CreateWebSession creates a new web session for a user
|
||||
func (c *Client) CreateWebSession(user string) (services.WebSession, error) {
|
||||
out, err := c.PostJSON(
|
||||
c.Endpoint("users", user, "web", "sessions"),
|
||||
createWebSessionReq{},
|
||||
)
|
||||
if err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
}
|
||||
return services.GetWebSessionMarshaler().UnmarshalWebSession(out.Bytes())
|
||||
}
|
||||
|
||||
// AuthenticateWebUser authenticates web user, creates and returns web session
|
||||
// in case if authentication is successful
|
||||
func (c *Client) AuthenticateWebUser(req AuthenticateUserRequest) (services.WebSession, error) {
|
||||
@@ -2538,8 +2526,6 @@ type WebService interface {
|
||||
// ExtendWebSession creates a new web session for a user based on another
|
||||
// valid web session
|
||||
ExtendWebSession(user string, prevSessionID string) (services.WebSession, error)
|
||||
// CreateWebSession creates a new web session for a user
|
||||
CreateWebSession(user string) (services.WebSession, error)
|
||||
// DeleteWebSession deletes a web session for this user by id
|
||||
DeleteWebSession(user string, sid string) error
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user