class SkullIsland::Resources::JWTCredential
The JWTCredential
resource class
@see docs.konghq.com/hub/kong-inc/jwt/ JWT Authentication details
Public Class Methods
batch_import(data, verbose: false, test: false)
click to toggle source
# File lib/skull_island/resources/jwt_credential.rb, line 20 def self.batch_import(data, verbose: false, test: false) raise(Exceptions::InvalidArguments) unless data.is_a?(Array) known_ids = [] data.each_with_index do |resource_data, index| resource = new resource.algorithm = resource_data['algorithm'] resource.delayed_set(:key, resource_data) if resource_data['key'] resource.delayed_set(:secret, resource_data) if resource_data['secret'] resource.delayed_set(:rsa_public_key, resource_data) if resource_data['rsa_public_key'] resource.delayed_set(:consumer, resource_data, 'consumer') resource.import_update_or_skip(index: index, verbose: verbose, test: test) known_ids << resource.id end known_ids end
relative_uri()
click to toggle source
# File lib/skull_island/resources/jwt_credential.rb, line 39 def self.relative_uri 'jwts' end
Public Instance Methods
export(options = {})
click to toggle source
rubocop:disable Metrics/AbcSize
# File lib/skull_island/resources/jwt_credential.rb, line 52 def export(options = {}) hash = { 'algorithm' => algorithm } hash['key'] = key if key hash['secret'] = secret if secret hash['rsa_public_key'] = rsa_public_key if rsa_public_key hash['consumer'] = "<%= lookup :consumer, '#{consumer.username}' %>" if consumer [*options[:exclude]].each do |exclude| hash.delete(exclude.to_s) end [*options[:include]].each do |inc| hash[inc.to_s] = send(inc.to_sym) end hash.reject { |_, value| value.nil? } end
modified_existing?()
click to toggle source
Keys can't be updated, only created or deleted
# File lib/skull_island/resources/jwt_credential.rb, line 69 def modified_existing? false end
project()
click to toggle source
# File lib/skull_island/resources/jwt_credential.rb, line 73 def project consumer ? consumer.project : nil end
relative_uri()
click to toggle source
# File lib/skull_island/resources/jwt_credential.rb, line 43 def relative_uri consumer ? "#{consumer.relative_uri}/jwt/#{id}" : nil end
save_uri()
click to toggle source
# File lib/skull_island/resources/jwt_credential.rb, line 47 def save_uri consumer ? "#{consumer.relative_uri}/jwt" : nil end
Private Instance Methods
postprocess_consumer(value)
click to toggle source
# File lib/skull_island/resources/jwt_credential.rb, line 79 def postprocess_consumer(value) if value.is_a?(Hash) Consumer.new( entity: value, lazy: true, tainted: false, api_client: api_client ) else value end end
preprocess_consumer(input)
click to toggle source
# File lib/skull_island/resources/jwt_credential.rb, line 92 def preprocess_consumer(input) if input.is_a?(Hash) input else { 'id' => input.id } end end
validate_algorithm(value)
click to toggle source
Used to validate {#algorithm} on set @see github.com/Kong/kong/blob/master/kong/plugins/jwt/daos.lua#L29
# File lib/skull_island/resources/jwt_credential.rb, line 108 def validate_algorithm(value) # allow a String %w[HS256 HS384 HS512 RS256 RS512 ES256].include? value end
validate_consumer(value)
click to toggle source
Used to validate {#consumer} on set
# File lib/skull_island/resources/jwt_credential.rb, line 101 def validate_consumer(value) # allow either a Consumer object or a Hash value.is_a?(Consumer) || value.is_a?(Hash) end
validate_key(value)
click to toggle source
Used to validate {#key} on set
# File lib/skull_island/resources/jwt_credential.rb, line 114 def validate_key(value) # allow a String value.is_a?(String) end
validate_rsa_public_key(value)
click to toggle source
Used to validate {#rsa_public_key} on set
# File lib/skull_island/resources/jwt_credential.rb, line 126 def validate_rsa_public_key(value) # allow a String value.is_a?(String) end
validate_secret(value)
click to toggle source
Used to validate {#secret} on set
# File lib/skull_island/resources/jwt_credential.rb, line 120 def validate_secret(value) # allow a String value.is_a?(String) end