Module: Verikloak::Audience::RailtieHelpers

Includes:
RailtieWarnings
Included in:
Railtie
Defined in:
lib/verikloak/audience/railtie.rb

Overview

Helper methods for Railtie configuration sync.

Constant Summary

Constants included from RailtieWarnings

Verikloak::Audience::RailtieWarnings::CORE_NOT_CONFIGURED_WARNING, Verikloak::Audience::RailtieWarnings::UNCONFIGURED_WARNING, Verikloak::Audience::RailtieWarnings::WARNING_MESSAGE

Instance Method Summary collapse

Methods included from RailtieWarnings

#log_warning, #warn_core_not_configured, #warn_missing_core_middleware, #warn_unconfigured

Instance Method Details

#apply_verikloak_rails_configurationObject



59
60
61
62
63
64
65
66
67
68
69
# File 'lib/verikloak/audience/railtie.rb', line 59

def apply_verikloak_rails_configuration
  rails_config = verikloak_rails_config
  return unless rails_config

  Verikloak::Audience.configure do |cfg|
    sync_env_claims_key(cfg, rails_config)
    sync_required_aud(cfg, rails_config)
    sync_resource_client(cfg, rails_config)
    sync_skip_paths(cfg, rails_config)
  end
end

#discovery_url_configured?(value) ⇒ Boolean

Returns:

  • (Boolean)


71
72
73
# File 'lib/verikloak/audience/railtie.rb', line 71

def discovery_url_configured?(value)
  !value_blank?(value)
end

#first_cli_tokensObject



90
91
92
93
94
95
96
97
98
99
# File 'lib/verikloak/audience/railtie.rb', line 90

def first_cli_tokens
  tokens = []
  ARGV.each do |arg|
    next if arg.start_with?('-') || arg == 'rails'

    tokens << arg
    break if tokens.size >= 2
  end
  tokens
end

#middleware_not_found_error?(error) ⇒ Boolean

Returns:

  • (Boolean)


75
76
77
78
79
80
81
82
# File 'lib/verikloak/audience/railtie.rb', line 75

def middleware_not_found_error?(error)
  return true if error.class.name.to_s.include?('MiddlewareNotFound')

  message = error.message.to_s
  message.include?('No such middleware') ||
    message.include?('does not exist') ||
    message.match?(/middleware.*not found/i)
end

#verikloak_install_generator?(command) ⇒ Boolean

Returns:

  • (Boolean)


84
85
86
87
88
# File 'lib/verikloak/audience/railtie.rb', line 84

def verikloak_install_generator?(command)
  return false unless command.is_a?(String)

  command.start_with?('verikloak:') && command.end_with?(':install')
end