...
1
2
3
4
5
6
7 package creds
8
9 import (
10 "context"
11 "net/http"
12 "time"
13
14 "go.mongodb.org/mongo-driver/internal/aws/credentials"
15 "go.mongodb.org/mongo-driver/internal/credproviders"
16 "go.mongodb.org/mongo-driver/x/bsonx/bsoncore"
17 )
18
19
20 type AzureCredentialProvider struct {
21 cred *credentials.Credentials
22 }
23
24
25 func NewAzureCredentialProvider(httpClient *http.Client) AzureCredentialProvider {
26 return AzureCredentialProvider{
27 credentials.NewCredentials(credproviders.NewAzureProvider(httpClient, 1*time.Minute)),
28 }
29 }
30
31
32 func (p AzureCredentialProvider) GetCredentialsDoc(ctx context.Context) (bsoncore.Document, error) {
33 creds, err := p.cred.GetWithContext(ctx)
34 if err != nil {
35 return nil, err
36 }
37 builder := bsoncore.NewDocumentBuilder().
38 AppendString("accessToken", creds.SessionToken)
39 return builder.Build(), nil
40 }
41
View as plain text