Class: Verikloak::Rails::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/verikloak/rails/configuration.rb

Overview

Configuration for verikloak-rails.

Controls how the Rack middleware is initialized (discovery, audience, issuer, leeway, skip paths) and Rails-specific behavior such as controller inclusion, logging tags, and error rendering.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializevoid

Initialize configuration with sensible defaults for Rails apps.



66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/verikloak/rails/configuration.rb', line 66

def initialize
  @discovery_url = nil
  @audience      = 'rails-api'
  @issuer        = nil
  @leeway        = 60
  @skip_paths    = ['/up', '/health', '/rails/health']
  @logger_tags    = %i[request_id sub]
  @error_renderer = Verikloak::Rails::ErrorRenderer.new
  @auto_include_controller = true
  @render_500_json = false
  @rescue_pundit = true
  @middleware_insert_before = nil
  @middleware_insert_after = nil
  @auto_insert_bff_header_guard = true
  @bff_header_guard_insert_before = nil
  @bff_header_guard_insert_after = nil
end

Instance Attribute Details

#audienceString, ...

Expected audience (‘aud`) claim. Accepts String or Array.

Returns:

  • (String, Array<String>, nil)


56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/verikloak/rails/configuration.rb', line 56

class Configuration
  attr_accessor :discovery_url, :audience, :issuer, :leeway, :skip_paths,
                :logger_tags, :error_renderer, :auto_include_controller,
                :render_500_json, :rescue_pundit,
                :middleware_insert_before, :middleware_insert_after,
                :auto_insert_bff_header_guard,
                :bff_header_guard_insert_before, :bff_header_guard_insert_after

  # Initialize configuration with sensible defaults for Rails apps.
  # @return [void]
  def initialize
    @discovery_url = nil
    @audience      = 'rails-api'
    @issuer        = nil
    @leeway        = 60
    @skip_paths    = ['/up', '/health', '/rails/health']
    @logger_tags    = %i[request_id sub]
    @error_renderer = Verikloak::Rails::ErrorRenderer.new
    @auto_include_controller = true
    @render_500_json = false
    @rescue_pundit = true
    @middleware_insert_before = nil
    @middleware_insert_after = nil
    @auto_insert_bff_header_guard = true
    @bff_header_guard_insert_before = nil
    @bff_header_guard_insert_after = nil
  end

  # Options forwarded to the base Verikloak Rack middleware.
  # @return [Hash]
  # @example
  #   Verikloak::Rails.config.middleware_options
  #   #=> { discovery_url: 'https://example/.well-known/openid-configuration', leeway: 60, ... }
  def middleware_options
    {
      discovery_url: discovery_url,
      audience: audience,
      issuer: issuer,
      leeway: leeway,
      skip_paths: skip_paths
    }.compact
  end
end

#auto_include_controllerBoolean

Auto-include the controller concern into ActionController::Base.

Returns:

  • (Boolean)


56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/verikloak/rails/configuration.rb', line 56

class Configuration
  attr_accessor :discovery_url, :audience, :issuer, :leeway, :skip_paths,
                :logger_tags, :error_renderer, :auto_include_controller,
                :render_500_json, :rescue_pundit,
                :middleware_insert_before, :middleware_insert_after,
                :auto_insert_bff_header_guard,
                :bff_header_guard_insert_before, :bff_header_guard_insert_after

  # Initialize configuration with sensible defaults for Rails apps.
  # @return [void]
  def initialize
    @discovery_url = nil
    @audience      = 'rails-api'
    @issuer        = nil
    @leeway        = 60
    @skip_paths    = ['/up', '/health', '/rails/health']
    @logger_tags    = %i[request_id sub]
    @error_renderer = Verikloak::Rails::ErrorRenderer.new
    @auto_include_controller = true
    @render_500_json = false
    @rescue_pundit = true
    @middleware_insert_before = nil
    @middleware_insert_after = nil
    @auto_insert_bff_header_guard = true
    @bff_header_guard_insert_before = nil
    @bff_header_guard_insert_after = nil
  end

  # Options forwarded to the base Verikloak Rack middleware.
  # @return [Hash]
  # @example
  #   Verikloak::Rails.config.middleware_options
  #   #=> { discovery_url: 'https://example/.well-known/openid-configuration', leeway: 60, ... }
  def middleware_options
    {
      discovery_url: discovery_url,
      audience: audience,
      issuer: issuer,
      leeway: leeway,
      skip_paths: skip_paths
    }.compact
  end
end

#auto_insert_bff_header_guardBoolean

Auto-insert ‘Verikloak::Bff::HeaderGuard` when available.

Returns:

  • (Boolean)


56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/verikloak/rails/configuration.rb', line 56

class Configuration
  attr_accessor :discovery_url, :audience, :issuer, :leeway, :skip_paths,
                :logger_tags, :error_renderer, :auto_include_controller,
                :render_500_json, :rescue_pundit,
                :middleware_insert_before, :middleware_insert_after,
                :auto_insert_bff_header_guard,
                :bff_header_guard_insert_before, :bff_header_guard_insert_after

  # Initialize configuration with sensible defaults for Rails apps.
  # @return [void]
  def initialize
    @discovery_url = nil
    @audience      = 'rails-api'
    @issuer        = nil
    @leeway        = 60
    @skip_paths    = ['/up', '/health', '/rails/health']
    @logger_tags    = %i[request_id sub]
    @error_renderer = Verikloak::Rails::ErrorRenderer.new
    @auto_include_controller = true
    @render_500_json = false
    @rescue_pundit = true
    @middleware_insert_before = nil
    @middleware_insert_after = nil
    @auto_insert_bff_header_guard = true
    @bff_header_guard_insert_before = nil
    @bff_header_guard_insert_after = nil
  end

  # Options forwarded to the base Verikloak Rack middleware.
  # @return [Hash]
  # @example
  #   Verikloak::Rails.config.middleware_options
  #   #=> { discovery_url: 'https://example/.well-known/openid-configuration', leeway: 60, ... }
  def middleware_options
    {
      discovery_url: discovery_url,
      audience: audience,
      issuer: issuer,
      leeway: leeway,
      skip_paths: skip_paths
    }.compact
  end
end

#bff_header_guard_insert_afterObject, ...

Rack middleware to insert the header guard after.

Returns:

  • (Object, String, Symbol, nil)


56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/verikloak/rails/configuration.rb', line 56

class Configuration
  attr_accessor :discovery_url, :audience, :issuer, :leeway, :skip_paths,
                :logger_tags, :error_renderer, :auto_include_controller,
                :render_500_json, :rescue_pundit,
                :middleware_insert_before, :middleware_insert_after,
                :auto_insert_bff_header_guard,
                :bff_header_guard_insert_before, :bff_header_guard_insert_after

  # Initialize configuration with sensible defaults for Rails apps.
  # @return [void]
  def initialize
    @discovery_url = nil
    @audience      = 'rails-api'
    @issuer        = nil
    @leeway        = 60
    @skip_paths    = ['/up', '/health', '/rails/health']
    @logger_tags    = %i[request_id sub]
    @error_renderer = Verikloak::Rails::ErrorRenderer.new
    @auto_include_controller = true
    @render_500_json = false
    @rescue_pundit = true
    @middleware_insert_before = nil
    @middleware_insert_after = nil
    @auto_insert_bff_header_guard = true
    @bff_header_guard_insert_before = nil
    @bff_header_guard_insert_after = nil
  end

  # Options forwarded to the base Verikloak Rack middleware.
  # @return [Hash]
  # @example
  #   Verikloak::Rails.config.middleware_options
  #   #=> { discovery_url: 'https://example/.well-known/openid-configuration', leeway: 60, ... }
  def middleware_options
    {
      discovery_url: discovery_url,
      audience: audience,
      issuer: issuer,
      leeway: leeway,
      skip_paths: skip_paths
    }.compact
  end
end

#bff_header_guard_insert_beforeObject, ...

Rack middleware to insert the header guard before.

Returns:

  • (Object, String, Symbol, nil)


56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/verikloak/rails/configuration.rb', line 56

class Configuration
  attr_accessor :discovery_url, :audience, :issuer, :leeway, :skip_paths,
                :logger_tags, :error_renderer, :auto_include_controller,
                :render_500_json, :rescue_pundit,
                :middleware_insert_before, :middleware_insert_after,
                :auto_insert_bff_header_guard,
                :bff_header_guard_insert_before, :bff_header_guard_insert_after

  # Initialize configuration with sensible defaults for Rails apps.
  # @return [void]
  def initialize
    @discovery_url = nil
    @audience      = 'rails-api'
    @issuer        = nil
    @leeway        = 60
    @skip_paths    = ['/up', '/health', '/rails/health']
    @logger_tags    = %i[request_id sub]
    @error_renderer = Verikloak::Rails::ErrorRenderer.new
    @auto_include_controller = true
    @render_500_json = false
    @rescue_pundit = true
    @middleware_insert_before = nil
    @middleware_insert_after = nil
    @auto_insert_bff_header_guard = true
    @bff_header_guard_insert_before = nil
    @bff_header_guard_insert_after = nil
  end

  # Options forwarded to the base Verikloak Rack middleware.
  # @return [Hash]
  # @example
  #   Verikloak::Rails.config.middleware_options
  #   #=> { discovery_url: 'https://example/.well-known/openid-configuration', leeway: 60, ... }
  def middleware_options
    {
      discovery_url: discovery_url,
      audience: audience,
      issuer: issuer,
      leeway: leeway,
      skip_paths: skip_paths
    }.compact
  end
end

#discovery_urlString?

OIDC discovery document URL.

Returns:

  • (String, nil)


56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/verikloak/rails/configuration.rb', line 56

class Configuration
  attr_accessor :discovery_url, :audience, :issuer, :leeway, :skip_paths,
                :logger_tags, :error_renderer, :auto_include_controller,
                :render_500_json, :rescue_pundit,
                :middleware_insert_before, :middleware_insert_after,
                :auto_insert_bff_header_guard,
                :bff_header_guard_insert_before, :bff_header_guard_insert_after

  # Initialize configuration with sensible defaults for Rails apps.
  # @return [void]
  def initialize
    @discovery_url = nil
    @audience      = 'rails-api'
    @issuer        = nil
    @leeway        = 60
    @skip_paths    = ['/up', '/health', '/rails/health']
    @logger_tags    = %i[request_id sub]
    @error_renderer = Verikloak::Rails::ErrorRenderer.new
    @auto_include_controller = true
    @render_500_json = false
    @rescue_pundit = true
    @middleware_insert_before = nil
    @middleware_insert_after = nil
    @auto_insert_bff_header_guard = true
    @bff_header_guard_insert_before = nil
    @bff_header_guard_insert_after = nil
  end

  # Options forwarded to the base Verikloak Rack middleware.
  # @return [Hash]
  # @example
  #   Verikloak::Rails.config.middleware_options
  #   #=> { discovery_url: 'https://example/.well-known/openid-configuration', leeway: 60, ... }
  def middleware_options
    {
      discovery_url: discovery_url,
      audience: audience,
      issuer: issuer,
      leeway: leeway,
      skip_paths: skip_paths
    }.compact
  end
end

#error_rendererObject

Custom error renderer object responding to ‘render(controller, error)`.

Returns:

  • (Object)


56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/verikloak/rails/configuration.rb', line 56

class Configuration
  attr_accessor :discovery_url, :audience, :issuer, :leeway, :skip_paths,
                :logger_tags, :error_renderer, :auto_include_controller,
                :render_500_json, :rescue_pundit,
                :middleware_insert_before, :middleware_insert_after,
                :auto_insert_bff_header_guard,
                :bff_header_guard_insert_before, :bff_header_guard_insert_after

  # Initialize configuration with sensible defaults for Rails apps.
  # @return [void]
  def initialize
    @discovery_url = nil
    @audience      = 'rails-api'
    @issuer        = nil
    @leeway        = 60
    @skip_paths    = ['/up', '/health', '/rails/health']
    @logger_tags    = %i[request_id sub]
    @error_renderer = Verikloak::Rails::ErrorRenderer.new
    @auto_include_controller = true
    @render_500_json = false
    @rescue_pundit = true
    @middleware_insert_before = nil
    @middleware_insert_after = nil
    @auto_insert_bff_header_guard = true
    @bff_header_guard_insert_before = nil
    @bff_header_guard_insert_after = nil
  end

  # Options forwarded to the base Verikloak Rack middleware.
  # @return [Hash]
  # @example
  #   Verikloak::Rails.config.middleware_options
  #   #=> { discovery_url: 'https://example/.well-known/openid-configuration', leeway: 60, ... }
  def middleware_options
    {
      discovery_url: discovery_url,
      audience: audience,
      issuer: issuer,
      leeway: leeway,
      skip_paths: skip_paths
    }.compact
  end
end

#issuerString?

Expected issuer (‘iss`) claim.

Returns:

  • (String, nil)


56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/verikloak/rails/configuration.rb', line 56

class Configuration
  attr_accessor :discovery_url, :audience, :issuer, :leeway, :skip_paths,
                :logger_tags, :error_renderer, :auto_include_controller,
                :render_500_json, :rescue_pundit,
                :middleware_insert_before, :middleware_insert_after,
                :auto_insert_bff_header_guard,
                :bff_header_guard_insert_before, :bff_header_guard_insert_after

  # Initialize configuration with sensible defaults for Rails apps.
  # @return [void]
  def initialize
    @discovery_url = nil
    @audience      = 'rails-api'
    @issuer        = nil
    @leeway        = 60
    @skip_paths    = ['/up', '/health', '/rails/health']
    @logger_tags    = %i[request_id sub]
    @error_renderer = Verikloak::Rails::ErrorRenderer.new
    @auto_include_controller = true
    @render_500_json = false
    @rescue_pundit = true
    @middleware_insert_before = nil
    @middleware_insert_after = nil
    @auto_insert_bff_header_guard = true
    @bff_header_guard_insert_before = nil
    @bff_header_guard_insert_after = nil
  end

  # Options forwarded to the base Verikloak Rack middleware.
  # @return [Hash]
  # @example
  #   Verikloak::Rails.config.middleware_options
  #   #=> { discovery_url: 'https://example/.well-known/openid-configuration', leeway: 60, ... }
  def middleware_options
    {
      discovery_url: discovery_url,
      audience: audience,
      issuer: issuer,
      leeway: leeway,
      skip_paths: skip_paths
    }.compact
  end
end

#leewayInteger

Clock skew allowance in seconds.

Returns:

  • (Integer)


56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/verikloak/rails/configuration.rb', line 56

class Configuration
  attr_accessor :discovery_url, :audience, :issuer, :leeway, :skip_paths,
                :logger_tags, :error_renderer, :auto_include_controller,
                :render_500_json, :rescue_pundit,
                :middleware_insert_before, :middleware_insert_after,
                :auto_insert_bff_header_guard,
                :bff_header_guard_insert_before, :bff_header_guard_insert_after

  # Initialize configuration with sensible defaults for Rails apps.
  # @return [void]
  def initialize
    @discovery_url = nil
    @audience      = 'rails-api'
    @issuer        = nil
    @leeway        = 60
    @skip_paths    = ['/up', '/health', '/rails/health']
    @logger_tags    = %i[request_id sub]
    @error_renderer = Verikloak::Rails::ErrorRenderer.new
    @auto_include_controller = true
    @render_500_json = false
    @rescue_pundit = true
    @middleware_insert_before = nil
    @middleware_insert_after = nil
    @auto_insert_bff_header_guard = true
    @bff_header_guard_insert_before = nil
    @bff_header_guard_insert_after = nil
  end

  # Options forwarded to the base Verikloak Rack middleware.
  # @return [Hash]
  # @example
  #   Verikloak::Rails.config.middleware_options
  #   #=> { discovery_url: 'https://example/.well-known/openid-configuration', leeway: 60, ... }
  def middleware_options
    {
      discovery_url: discovery_url,
      audience: audience,
      issuer: issuer,
      leeway: leeway,
      skip_paths: skip_paths
    }.compact
  end
end

#logger_tagsArray<Symbol>

Log tags to include (supports :request_id, :sub).

Returns:

  • (Array<Symbol>)


56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/verikloak/rails/configuration.rb', line 56

class Configuration
  attr_accessor :discovery_url, :audience, :issuer, :leeway, :skip_paths,
                :logger_tags, :error_renderer, :auto_include_controller,
                :render_500_json, :rescue_pundit,
                :middleware_insert_before, :middleware_insert_after,
                :auto_insert_bff_header_guard,
                :bff_header_guard_insert_before, :bff_header_guard_insert_after

  # Initialize configuration with sensible defaults for Rails apps.
  # @return [void]
  def initialize
    @discovery_url = nil
    @audience      = 'rails-api'
    @issuer        = nil
    @leeway        = 60
    @skip_paths    = ['/up', '/health', '/rails/health']
    @logger_tags    = %i[request_id sub]
    @error_renderer = Verikloak::Rails::ErrorRenderer.new
    @auto_include_controller = true
    @render_500_json = false
    @rescue_pundit = true
    @middleware_insert_before = nil
    @middleware_insert_after = nil
    @auto_insert_bff_header_guard = true
    @bff_header_guard_insert_before = nil
    @bff_header_guard_insert_after = nil
  end

  # Options forwarded to the base Verikloak Rack middleware.
  # @return [Hash]
  # @example
  #   Verikloak::Rails.config.middleware_options
  #   #=> { discovery_url: 'https://example/.well-known/openid-configuration', leeway: 60, ... }
  def middleware_options
    {
      discovery_url: discovery_url,
      audience: audience,
      issuer: issuer,
      leeway: leeway,
      skip_paths: skip_paths
    }.compact
  end
end

#middleware_insert_afterObject, ...

Rack middleware to insert ‘Verikloak::Middleware` after.

Returns:

  • (Object, String, Symbol, nil)


56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/verikloak/rails/configuration.rb', line 56

class Configuration
  attr_accessor :discovery_url, :audience, :issuer, :leeway, :skip_paths,
                :logger_tags, :error_renderer, :auto_include_controller,
                :render_500_json, :rescue_pundit,
                :middleware_insert_before, :middleware_insert_after,
                :auto_insert_bff_header_guard,
                :bff_header_guard_insert_before, :bff_header_guard_insert_after

  # Initialize configuration with sensible defaults for Rails apps.
  # @return [void]
  def initialize
    @discovery_url = nil
    @audience      = 'rails-api'
    @issuer        = nil
    @leeway        = 60
    @skip_paths    = ['/up', '/health', '/rails/health']
    @logger_tags    = %i[request_id sub]
    @error_renderer = Verikloak::Rails::ErrorRenderer.new
    @auto_include_controller = true
    @render_500_json = false
    @rescue_pundit = true
    @middleware_insert_before = nil
    @middleware_insert_after = nil
    @auto_insert_bff_header_guard = true
    @bff_header_guard_insert_before = nil
    @bff_header_guard_insert_after = nil
  end

  # Options forwarded to the base Verikloak Rack middleware.
  # @return [Hash]
  # @example
  #   Verikloak::Rails.config.middleware_options
  #   #=> { discovery_url: 'https://example/.well-known/openid-configuration', leeway: 60, ... }
  def middleware_options
    {
      discovery_url: discovery_url,
      audience: audience,
      issuer: issuer,
      leeway: leeway,
      skip_paths: skip_paths
    }.compact
  end
end

#middleware_insert_beforeObject, ...

Rack middleware to insert ‘Verikloak::Middleware` before.

Returns:

  • (Object, String, Symbol, nil)


56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/verikloak/rails/configuration.rb', line 56

class Configuration
  attr_accessor :discovery_url, :audience, :issuer, :leeway, :skip_paths,
                :logger_tags, :error_renderer, :auto_include_controller,
                :render_500_json, :rescue_pundit,
                :middleware_insert_before, :middleware_insert_after,
                :auto_insert_bff_header_guard,
                :bff_header_guard_insert_before, :bff_header_guard_insert_after

  # Initialize configuration with sensible defaults for Rails apps.
  # @return [void]
  def initialize
    @discovery_url = nil
    @audience      = 'rails-api'
    @issuer        = nil
    @leeway        = 60
    @skip_paths    = ['/up', '/health', '/rails/health']
    @logger_tags    = %i[request_id sub]
    @error_renderer = Verikloak::Rails::ErrorRenderer.new
    @auto_include_controller = true
    @render_500_json = false
    @rescue_pundit = true
    @middleware_insert_before = nil
    @middleware_insert_after = nil
    @auto_insert_bff_header_guard = true
    @bff_header_guard_insert_before = nil
    @bff_header_guard_insert_after = nil
  end

  # Options forwarded to the base Verikloak Rack middleware.
  # @return [Hash]
  # @example
  #   Verikloak::Rails.config.middleware_options
  #   #=> { discovery_url: 'https://example/.well-known/openid-configuration', leeway: 60, ... }
  def middleware_options
    {
      discovery_url: discovery_url,
      audience: audience,
      issuer: issuer,
      leeway: leeway,
      skip_paths: skip_paths
    }.compact
  end
end

#render_500_jsonBoolean

Rescue StandardError and render a JSON 500 response.

Returns:

  • (Boolean)


56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/verikloak/rails/configuration.rb', line 56

class Configuration
  attr_accessor :discovery_url, :audience, :issuer, :leeway, :skip_paths,
                :logger_tags, :error_renderer, :auto_include_controller,
                :render_500_json, :rescue_pundit,
                :middleware_insert_before, :middleware_insert_after,
                :auto_insert_bff_header_guard,
                :bff_header_guard_insert_before, :bff_header_guard_insert_after

  # Initialize configuration with sensible defaults for Rails apps.
  # @return [void]
  def initialize
    @discovery_url = nil
    @audience      = 'rails-api'
    @issuer        = nil
    @leeway        = 60
    @skip_paths    = ['/up', '/health', '/rails/health']
    @logger_tags    = %i[request_id sub]
    @error_renderer = Verikloak::Rails::ErrorRenderer.new
    @auto_include_controller = true
    @render_500_json = false
    @rescue_pundit = true
    @middleware_insert_before = nil
    @middleware_insert_after = nil
    @auto_insert_bff_header_guard = true
    @bff_header_guard_insert_before = nil
    @bff_header_guard_insert_after = nil
  end

  # Options forwarded to the base Verikloak Rack middleware.
  # @return [Hash]
  # @example
  #   Verikloak::Rails.config.middleware_options
  #   #=> { discovery_url: 'https://example/.well-known/openid-configuration', leeway: 60, ... }
  def middleware_options
    {
      discovery_url: discovery_url,
      audience: audience,
      issuer: issuer,
      leeway: leeway,
      skip_paths: skip_paths
    }.compact
  end
end

#rescue_punditBoolean

Rescue ‘Pundit::NotAuthorizedError` and render JSON 403 responses.

Returns:

  • (Boolean)


56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/verikloak/rails/configuration.rb', line 56

class Configuration
  attr_accessor :discovery_url, :audience, :issuer, :leeway, :skip_paths,
                :logger_tags, :error_renderer, :auto_include_controller,
                :render_500_json, :rescue_pundit,
                :middleware_insert_before, :middleware_insert_after,
                :auto_insert_bff_header_guard,
                :bff_header_guard_insert_before, :bff_header_guard_insert_after

  # Initialize configuration with sensible defaults for Rails apps.
  # @return [void]
  def initialize
    @discovery_url = nil
    @audience      = 'rails-api'
    @issuer        = nil
    @leeway        = 60
    @skip_paths    = ['/up', '/health', '/rails/health']
    @logger_tags    = %i[request_id sub]
    @error_renderer = Verikloak::Rails::ErrorRenderer.new
    @auto_include_controller = true
    @render_500_json = false
    @rescue_pundit = true
    @middleware_insert_before = nil
    @middleware_insert_after = nil
    @auto_insert_bff_header_guard = true
    @bff_header_guard_insert_before = nil
    @bff_header_guard_insert_after = nil
  end

  # Options forwarded to the base Verikloak Rack middleware.
  # @return [Hash]
  # @example
  #   Verikloak::Rails.config.middleware_options
  #   #=> { discovery_url: 'https://example/.well-known/openid-configuration', leeway: 60, ... }
  def middleware_options
    {
      discovery_url: discovery_url,
      audience: audience,
      issuer: issuer,
      leeway: leeway,
      skip_paths: skip_paths
    }.compact
  end
end

#skip_pathsArray<String>

Paths to skip verification.

Returns:

  • (Array<String>)


56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/verikloak/rails/configuration.rb', line 56

class Configuration
  attr_accessor :discovery_url, :audience, :issuer, :leeway, :skip_paths,
                :logger_tags, :error_renderer, :auto_include_controller,
                :render_500_json, :rescue_pundit,
                :middleware_insert_before, :middleware_insert_after,
                :auto_insert_bff_header_guard,
                :bff_header_guard_insert_before, :bff_header_guard_insert_after

  # Initialize configuration with sensible defaults for Rails apps.
  # @return [void]
  def initialize
    @discovery_url = nil
    @audience      = 'rails-api'
    @issuer        = nil
    @leeway        = 60
    @skip_paths    = ['/up', '/health', '/rails/health']
    @logger_tags    = %i[request_id sub]
    @error_renderer = Verikloak::Rails::ErrorRenderer.new
    @auto_include_controller = true
    @render_500_json = false
    @rescue_pundit = true
    @middleware_insert_before = nil
    @middleware_insert_after = nil
    @auto_insert_bff_header_guard = true
    @bff_header_guard_insert_before = nil
    @bff_header_guard_insert_after = nil
  end

  # Options forwarded to the base Verikloak Rack middleware.
  # @return [Hash]
  # @example
  #   Verikloak::Rails.config.middleware_options
  #   #=> { discovery_url: 'https://example/.well-known/openid-configuration', leeway: 60, ... }
  def middleware_options
    {
      discovery_url: discovery_url,
      audience: audience,
      issuer: issuer,
      leeway: leeway,
      skip_paths: skip_paths
    }.compact
  end
end

Instance Method Details

#middleware_optionsHash

Options forwarded to the base Verikloak Rack middleware.

Examples:

Verikloak::Rails.config.middleware_options
#=> { discovery_url: 'https://example/.well-known/openid-configuration', leeway: 60, ... }

Returns:

  • (Hash)


89
90
91
92
93
94
95
96
97
# File 'lib/verikloak/rails/configuration.rb', line 89

def middleware_options
  {
    discovery_url: discovery_url,
    audience: audience,
    issuer: issuer,
    leeway: leeway,
    skip_paths: skip_paths
  }.compact
end