Class: Usps::JwtAuth::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/usps/jwt_auth/config.rb

Overview

Configure JWT Authentication

Constant Summary collapse

REQUIRED_OPTIONS =
%i[audience is_admin find_member].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize {|_self| ... } ⇒ Config

Returns a new instance of Config.

Yields:

  • (_self)

Yield Parameters:



12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/usps/jwt_auth/config.rb', line 12

def initialize
  @environment = ActiveSupport::StringInquirer.new('development')
  @keys_path = Pathname.new('config/keys')
  @public_keys_path = Pathname.new('config/public_keys')
  @key_size = 4096
  @algorithm = 'RS512'
  @issuer_base = 'usps:1'
  @issuers = []
  @audience = nil

  yield self if block_given? # Also support setting options on initialize
end

Instance Attribute Details

#algorithmObject

Returns the value of attribute algorithm.



10
11
12
# File 'lib/usps/jwt_auth/config.rb', line 10

def algorithm
  @algorithm
end

#audienceObject

Returns the value of attribute audience.



10
11
12
# File 'lib/usps/jwt_auth/config.rb', line 10

def audience
  @audience
end

#environmentObject

Returns the value of attribute environment.



10
11
12
# File 'lib/usps/jwt_auth/config.rb', line 10

def environment
  @environment
end

#find_memberObject

Returns the value of attribute find_member.



10
11
12
# File 'lib/usps/jwt_auth/config.rb', line 10

def find_member
  @find_member
end

#is_adminObject

Returns the value of attribute is_admin.



10
11
12
# File 'lib/usps/jwt_auth/config.rb', line 10

def is_admin
  @is_admin
end

#issuer_baseObject

Returns the value of attribute issuer_base.



10
11
12
# File 'lib/usps/jwt_auth/config.rb', line 10

def issuer_base
  @issuer_base
end

#issuersObject

Returns the value of attribute issuers.



10
11
12
# File 'lib/usps/jwt_auth/config.rb', line 10

def issuers
  @issuers
end

#key_sizeObject

Returns the value of attribute key_size.



10
11
12
# File 'lib/usps/jwt_auth/config.rb', line 10

def key_size
  @key_size
end

Instance Method Details

#keys_pathObject



25
26
27
# File 'lib/usps/jwt_auth/config.rb', line 25

def keys_path
  defined?(Rails) ? Rails.root.join(@keys_path) : @keys_path
end

#keys_path=(path) ⇒ Object



29
30
31
# File 'lib/usps/jwt_auth/config.rb', line 29

def keys_path=(path)
  @keys_path = path.is_a?(Pathname) ? path : Pathname.new(path)
end

#public_keys_pathObject



33
34
35
# File 'lib/usps/jwt_auth/config.rb', line 33

def public_keys_path
  defined?(Rails) ? Rails.root.join(@public_keys_path) : @public_keys_path
end

#public_keys_path=(path) ⇒ Object



37
38
39
# File 'lib/usps/jwt_auth/config.rb', line 37

def public_keys_path=(path)
  @public_keys_path = path.is_a?(Pathname) ? path : Pathname.new(path)
end

#validate!Object



41
42
43
44
45
46
# File 'lib/usps/jwt_auth/config.rb', line 41

def validate!
  missing_required_options = REQUIRED_OPTIONS.select { public_send(it).nil? }
  return unless missing_required_options.any?

  raise "Missing required options: #{missing_required_options.join(', ')}"
end