class Rails::Vault::JWT::TokenProvider::BaseProvider

Attributes

expire_time[R]

Public Class Methods

new(*_args, bearer_role_name: nil, **_kwargs) click to toggle source
# File lib/rails/vault/jwt/token_provider/base_provider.rb, line 12
def initialize(*_args, bearer_role_name: nil, **_kwargs)
  @expire_time = DateTime.now
  @bearer_role_name = bearer_role_name || ENV.fetch('VAULT_BEARER_ROLE', '')
end

Public Instance Methods

auth() click to toggle source
# File lib/rails/vault/jwt/token_provider/base_provider.rb, line 17
def auth; end
bearer_token() click to toggle source
# File lib/rails/vault/jwt/token_provider/base_provider.rb, line 19
def bearer_token
  token
  client.logical.read("identity/oidc/token/#{@bearer_role_name}")&.data[:token]
end
client() click to toggle source
# File lib/rails/vault/jwt/token_provider/base_provider.rb, line 47
def client
  @client ||= ::Vault::Client.new
end
token() click to toggle source
# File lib/rails/vault/jwt/token_provider/base_provider.rb, line 24
def token
  unless token_valid?
    auth_data = auth
    @token = auth_data.client_token
    @expire_time = DateTime.now + (auth_data.lease_duration / 86_400.0)
    client.token = @token
  end

  @token
end
token_expired?() click to toggle source
# File lib/rails/vault/jwt/token_provider/base_provider.rb, line 35
def token_expired?
  DateTime.now > @expire_time
end
token_life_remaining() click to toggle source
# File lib/rails/vault/jwt/token_provider/base_provider.rb, line 39
def token_life_remaining
  (@expire_time - DateTime.now) * 86_400.0
end
token_valid?() click to toggle source
# File lib/rails/vault/jwt/token_provider/base_provider.rb, line 43
def token_valid?
  !@token.nil? && !token_expired?
end