Class: RedirectUriValidator

Inherits:
ActiveModel::EachValidator
  • Object
show all
Defined in:
app/validators/redirect_uri_validator.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.test_redirect_uriObject



4
5
6
# File 'app/validators/redirect_uri_validator.rb', line 4

def self.test_redirect_uri
  Doorkeeper.configuration.test_redirect_uri
end

Instance Method Details

#validate_each(record, attribute, value) ⇒ Object



8
9
10
11
12
13
14
15
16
# File 'app/validators/redirect_uri_validator.rb', line 8

def validate_each(record, attribute, value)
  uri = ::URI.parse(value)
  return if test_redirect_uri?(uri)
  record.errors.add(attribute, :fragment_present) unless uri.fragment.nil?
  record.errors.add(attribute, :relative_uri) if uri.scheme.nil? || uri.host.nil?
  record.errors.add(attribute, :has_query_parameter) unless uri.query.nil?
rescue URI::InvalidURIError => e
  record.errors.add(attribute, :invalid_uri)
end