Removed CreateWebSession endpoint.

This commit is contained in:
Russell Jones
2019-09-03 13:44:20 -07:00
committed by Russell Jones
parent 9135a5ade7
commit 04b4469a66
4 changed files with 7 additions and 53 deletions
+7 -10
View File
@@ -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) {
-22
View File
@@ -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
-7
View File
@@ -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)
-14
View File
@@ -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
}