File: error_with_connect_ext.rb

package info (click to toggle)
ruby-openid-connect 2.3.1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 528 kB
  • sloc: ruby: 3,002; makefile: 4
file content (34 lines) | stat: -rw-r--r-- 1,460 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
module Rack
  module OAuth2
    module Server
      class Authorize
        module ErrorWithConnectExt
          DEFAULT_DESCRIPTION = {
            invalid_redirect_uri: 'The redirect_uri in the request does not match any of pre-registered redirect_uris.',
            interaction_required: 'End-User interaction required.',
            login_required: 'End-User authentication required.',
            session_selection_required: 'The End-User is required to select a session at the Authorization Server.',
            consent_required: 'End-User consent required.',
            invalid_request_uri: 'The request_uri in the request returns an error or invalid data.',
            invalid_openid_request_object: 'The request parameter contains an invalid OpenID Request Object.'
          }

          def self.included(klass)
            DEFAULT_DESCRIPTION.each do |error, default_description|
              # NOTE:
              #  Connect Message spec doesn't say anything about HTTP status code for each error code.
              #  It probably means "use 400".
              error_method = :bad_request!
              klass.class_eval <<-ERROR
                def #{error}!(description = "#{default_description}", options = {})
                  #{error_method} :#{error}, description, options
                end
              ERROR
            end
          end
        end
        Request.send :include, ErrorWithConnectExt
      end
    end
  end
end