...
1
2
3
4
5 package downscope_test
6
7 import (
8 "context"
9 "fmt"
10
11 "golang.org/x/oauth2/google"
12
13 "golang.org/x/oauth2"
14 "golang.org/x/oauth2/google/downscope"
15 )
16
17 func ExampleNewTokenSource() {
18
19
20 ctx := context.Background()
21
22
23
24 accessBoundary := []downscope.AccessBoundaryRule{
25 {
26 AvailableResource: "//storage.googleapis.com/projects/_/buckets/foo",
27 AvailablePermissions: []string{"inRole:roles/storage.objectViewer"},
28 },
29 }
30
31 var rootSource oauth2.TokenSource
32
33
34
35 rootSource, err := google.DefaultTokenSource(ctx, "https://www.googleapis.com/auth/cloud-platform")
36
37 dts, err := downscope.NewTokenSource(ctx, downscope.DownscopingConfig{RootSource: rootSource, Rules: accessBoundary})
38 if err != nil {
39 fmt.Printf("failed to generate downscoped token source: %v", err)
40 return
41 }
42
43 tok, err := dts.Token()
44 if err != nil {
45 fmt.Printf("failed to generate token: %v", err)
46 return
47 }
48 _ = tok
49
50
51
52
53
54
55
56
57 }
58
View as plain text