vSphere Cloud Provider: update vmware/gomvomi godeps
This commit is contained in:
93
vendor/github.com/vmware/govmomi/simulator/session_manager.go
generated
vendored
93
vendor/github.com/vmware/govmomi/simulator/session_manager.go
generated
vendored
@@ -49,33 +49,85 @@ func NewSessionManager(ref types.ManagedObjectReference) object.Reference {
|
||||
return s
|
||||
}
|
||||
|
||||
func (s *SessionManager) Login(ctx *Context, login *types.Login) soap.HasFault {
|
||||
body := &methods.LoginBody{}
|
||||
func createSession(ctx *Context, name string, locale string) types.UserSession {
|
||||
now := time.Now().UTC()
|
||||
|
||||
if login.Locale == "" {
|
||||
login.Locale = session.Locale
|
||||
if locale == "" {
|
||||
locale = session.Locale
|
||||
}
|
||||
|
||||
if login.UserName == "" || login.Password == "" || ctx.Session != nil {
|
||||
session := Session{
|
||||
UserSession: types.UserSession{
|
||||
Key: uuid.New().String(),
|
||||
UserName: name,
|
||||
FullName: name,
|
||||
LoginTime: now,
|
||||
LastActiveTime: now,
|
||||
Locale: locale,
|
||||
MessageLocale: locale,
|
||||
},
|
||||
Registry: NewRegistry(),
|
||||
}
|
||||
|
||||
ctx.SetSession(session, true)
|
||||
|
||||
return session.UserSession
|
||||
}
|
||||
|
||||
func (s *SessionManager) Login(ctx *Context, req *types.Login) soap.HasFault {
|
||||
body := new(methods.LoginBody)
|
||||
|
||||
if req.UserName == "" || req.Password == "" || ctx.Session != nil {
|
||||
body.Fault_ = invalidLogin
|
||||
} else {
|
||||
session := Session{
|
||||
UserSession: types.UserSession{
|
||||
Key: uuid.New().String(),
|
||||
UserName: login.UserName,
|
||||
FullName: login.UserName,
|
||||
LoginTime: time.Now(),
|
||||
LastActiveTime: time.Now(),
|
||||
Locale: login.Locale,
|
||||
MessageLocale: login.Locale,
|
||||
},
|
||||
Registry: NewRegistry(),
|
||||
body.Res = &types.LoginResponse{
|
||||
Returnval: createSession(ctx, req.UserName, req.Locale),
|
||||
}
|
||||
}
|
||||
|
||||
return body
|
||||
}
|
||||
|
||||
func (s *SessionManager) LoginExtensionByCertificate(ctx *Context, req *types.LoginExtensionByCertificate) soap.HasFault {
|
||||
body := new(methods.LoginExtensionByCertificateBody)
|
||||
|
||||
if ctx.req.TLS == nil || len(ctx.req.TLS.PeerCertificates) == 0 {
|
||||
body.Fault_ = Fault("", new(types.NoClientCertificate))
|
||||
return body
|
||||
}
|
||||
|
||||
if req.ExtensionKey == "" || ctx.Session != nil {
|
||||
body.Fault_ = invalidLogin
|
||||
} else {
|
||||
body.Res = &types.LoginExtensionByCertificateResponse{
|
||||
Returnval: createSession(ctx, req.ExtensionKey, req.Locale),
|
||||
}
|
||||
}
|
||||
|
||||
return body
|
||||
}
|
||||
|
||||
func (s *SessionManager) LoginByToken(ctx *Context, req *types.LoginByToken) soap.HasFault {
|
||||
body := new(methods.LoginByTokenBody)
|
||||
|
||||
if ctx.Session != nil {
|
||||
body.Fault_ = invalidLogin
|
||||
} else {
|
||||
var subject struct {
|
||||
ID string `xml:"Assertion>Subject>NameID"`
|
||||
}
|
||||
|
||||
ctx.SetSession(session, true)
|
||||
if s, ok := ctx.Header.Security.(*Element); ok {
|
||||
_ = s.Decode(&subject)
|
||||
}
|
||||
|
||||
body.Res = &types.LoginResponse{
|
||||
Returnval: session.UserSession,
|
||||
if subject.ID == "" {
|
||||
body.Fault_ = invalidLogin
|
||||
return body
|
||||
}
|
||||
|
||||
body.Res = &types.LoginByTokenResponse{
|
||||
Returnval: createSession(ctx, subject.ID, req.Locale),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -163,6 +215,7 @@ var internalContext = &Context{
|
||||
},
|
||||
Registry: NewRegistry(),
|
||||
},
|
||||
Map: Map,
|
||||
}
|
||||
|
||||
var invalidLogin = Fault("Login failure", new(types.InvalidLogin))
|
||||
@@ -175,7 +228,9 @@ type Context struct {
|
||||
|
||||
context.Context
|
||||
Session *Session
|
||||
Header soap.Header
|
||||
Caller *types.ManagedObjectReference
|
||||
Map *Registry
|
||||
}
|
||||
|
||||
// mapSession maps an HTTP cookie to a Session.
|
||||
|
||||
Reference in New Issue
Block a user