Sha256: 42c78199b74cb14117521a0dec7f1c5eaa6812cba59a243d6e1fd3e1b64d738b

Contents?: true

Size: 476 Bytes

Versions: 2

Compression:

Stored size: 476 Bytes

Contents

require 'uri'

class RedirectUriValidator < ActiveModel::EachValidator
  def validate_each(record, attribute, value)
    uri = ::URI.parse(value)
    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
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
doorkeeper-0.5.0 app/validators/redirect_uri_validator.rb
doorkeeper-0.5.0.rc1 app/validators/redirect_uri_validator.rb