github.com/vmware/govmomi@v0.51.0/vapi/rest/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 rest_test
     6  
     7  import (
     8  	"context"
     9  	"fmt"
    10  	"net/url"
    11  
    12  	_ "github.com/vmware/govmomi/lookup/simulator"
    13  	"github.com/vmware/govmomi/simulator"
    14  	"github.com/vmware/govmomi/sts"
    15  	_ "github.com/vmware/govmomi/sts/simulator"
    16  	"github.com/vmware/govmomi/vapi/rest"
    17  	"github.com/vmware/govmomi/vim25"
    18  )
    19  
    20  func ExampleClient_LoginByToken() {
    21  	simulator.Run(func(ctx context.Context, vc *vim25.Client) error {
    22  		c, err := sts.NewClient(ctx, vc)
    23  		if err != nil {
    24  			return err
    25  		}
    26  
    27  		// Issue a bearer token
    28  		req := sts.TokenRequest{
    29  			Userinfo: url.UserPassword("Administrator@VSPHERE.LOCAL", "password"),
    30  		}
    31  
    32  		signer, err := c.Issue(ctx, req)
    33  		if err != nil {
    34  			return err
    35  		}
    36  
    37  		rc := rest.NewClient(vc)
    38  
    39  		err = rc.LoginByToken(rc.WithSigner(ctx, signer))
    40  		if err != nil {
    41  			return err
    42  		}
    43  
    44  		session, err := rc.Session(ctx)
    45  		if err != nil {
    46  			return err
    47  		}
    48  
    49  		// Note: vcsim does not currently parse the token NameID for rest as it does for soap
    50  		fmt.Println(session.User)
    51  
    52  		return nil
    53  	})
    54  	// Output: TODO
    55  }