Sha256: f2852231665169d653d29216441b0b8bec05f1d40dc04be8c833ef240b20243f

Contents?: true

Size: 892 Bytes

Versions: 7

Compression:

Stored size: 892 Bytes

Contents

class Rack::OAuth2::Server::Authorize
  module RequestWithConnectParams
    # NOTE: nonce is REQUIRED, but define optional attributes not to break rack-oauth2 for now
    CONNECT_EXT_PARAMS = [:nonce, :display, :prompt, :request, :request_uri]

    def self.included(klass)
      klass.send :attr_optional, *CONNECT_EXT_PARAMS
      klass.class_eval do
        def initialize_with_connect_params(env)
          initialize_without_connect_params env
          CONNECT_EXT_PARAMS.each do |attribute|
            self.send :"#{attribute}=", params[attribute.to_s]
          end
          invalid_request!('Nonce Required') if openid_connect_request? && nonce.blank?
        end
        alias_method_chain :initialize, :connect_params

        def openid_connect_request?
          scope.include?('openid')
        end
      end
    end
  end
  Request.send :include, RequestWithConnectParams
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
openid_connect-0.2.0 lib/rack/oauth2/server/authorize/request_with_connect_params.rb
openid_connect-0.2.0.alpha3 lib/rack/oauth2/server/authorize/request_with_connect_params.rb
openid_connect-0.2.0.alpha2 lib/rack/oauth2/server/authorize/request_with_connect_params.rb
openid_connect-0.2.0.alpha lib/rack/oauth2/server/authorize/request_with_connect_params.rb
openid_connect-0.1.5 lib/rack/oauth2/server/authorize/request_with_connect_params.rb
openid_connect-0.1.4 lib/rack/oauth2/server/authorize/request_with_connect_params.rb
openid_connect-0.1.3 lib/rack/oauth2/server/authorize/request_with_connect_params.rb