...

Source file src/go.mongodb.org/mongo-driver/x/mongo/driver/auth/creds/azurecreds.go

Documentation: go.mongodb.org/mongo-driver/x/mongo/driver/auth/creds

     1  // Copyright (C) MongoDB, Inc. 2023-present.
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License"); you may
     4  // not use this file except in compliance with the License. You may obtain
     5  // a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
     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  // AzureCredentialProvider provides Azure credentials.
    20  type AzureCredentialProvider struct {
    21  	cred *credentials.Credentials
    22  }
    23  
    24  // NewAzureCredentialProvider generates new AzureCredentialProvider
    25  func NewAzureCredentialProvider(httpClient *http.Client) AzureCredentialProvider {
    26  	return AzureCredentialProvider{
    27  		credentials.NewCredentials(credproviders.NewAzureProvider(httpClient, 1*time.Minute)),
    28  	}
    29  }
    30  
    31  // GetCredentialsDoc generates Azure credentials.
    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