Class: LogStash::Outputs::MicrosoftSentinelOutputInternal::LogAnalyticsAadTokenProvider

Inherits:
Object
  • Object
show all
Defined in:
lib/logstash/sentinel/logAnalyticsAadTokenProvider.rb

Instance Method Summary collapse

Constructor Details

#initialize(logstashLoganalyticsConfiguration) ⇒ LogAnalyticsAadTokenProvider

Returns a new instance of LogAnalyticsAadTokenProvider.



11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/logstash/sentinel/logAnalyticsAadTokenProvider.rb', line 11

def initialize (logstashLoganalyticsConfiguration)
  set_proxy(logstashLoganalyticsConfiguration.proxy)
  scope = CGI.escape("https://monitor.azure.com//.default")
  @token_request_body = sprintf("client_id=%s&scope=%s&client_secret=%s&grant_type=client_credentials", logstashLoganalyticsConfiguration.client_app_Id, scope, logstashLoganalyticsConfiguration.client_app_secret)
  @token_request_uri = sprintf("https://login.microsoftonline.com/%s/oauth2/v2.0/token", logstashLoganalyticsConfiguration.tenant_id)
  @token_state = {
    :access_token => nil,
    :expiry_time => nil,
    :token_details_mutex => Mutex.new,
  }
  @logger = logstashLoganalyticsConfiguration.logger
end

Instance Method Details

#get_aad_token_bearerObject



27
28
29
30
31
32
33
34
# File 'lib/logstash/sentinel/logAnalyticsAadTokenProvider.rb', line 27

def get_aad_token_bearer()
  @token_state[:token_details_mutex].synchronize do
    if is_saved_token_need_refresh()
      refresh_saved_token()
    end
    return @token_state[:access_token]
  end
end