github.com/vmware/govmomi@v0.51.0/session/example_test.go (about) 1 // © Broadcom. All Rights Reserved. 2 // The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. 3 // SPDX-License-Identifier: Apache-2.0 4 5 package session_test 6 7 import ( 8 "context" 9 "fmt" 10 "net/url" 11 12 _ "github.com/vmware/govmomi/lookup/simulator" 13 "github.com/vmware/govmomi/session" 14 "github.com/vmware/govmomi/simulator" 15 "github.com/vmware/govmomi/sts" 16 _ "github.com/vmware/govmomi/sts/simulator" 17 "github.com/vmware/govmomi/vim25" 18 "github.com/vmware/govmomi/vim25/soap" 19 ) 20 21 func ExampleManager_LoginByToken() { 22 simulator.Run(func(ctx context.Context, vc *vim25.Client) error { 23 c, err := sts.NewClient(ctx, vc) 24 if err != nil { 25 return err 26 } 27 28 // Issue a bearer token 29 req := sts.TokenRequest{ 30 Userinfo: url.UserPassword("Administrator@VSPHERE.LOCAL", "password"), 31 } 32 33 signer, err := c.Issue(ctx, req) 34 if err != nil { 35 return err 36 } 37 38 // Create a new un-authenticated client and LoginByToken 39 vc2, err := vim25.NewClient(ctx, soap.NewClient(vc.URL(), true)) 40 if err != nil { 41 return err 42 } 43 44 m := session.NewManager(vc2) 45 header := soap.Header{Security: signer} 46 47 err = m.LoginByToken(vc2.WithHeader(ctx, header)) 48 if err != nil { 49 return err 50 } 51 52 session, err := m.UserSession(ctx) 53 if err != nil { 54 return err 55 } 56 57 fmt.Println(session.UserName) 58 59 return nil 60 }) 61 // Output: Administrator@VSPHERE.LOCAL 62 }