Class: MDQT::Client::MetadataValidator
- Inherits:
-
Object
- Object
- MDQT::Client::MetadataValidator
- Defined in:
- lib/mdqt/client/metadata_validator.rb
Instance Method Summary collapse
- #certificates ⇒ Object
- #certificates? ⇒ Boolean
-
#initialize(options = {}) ⇒ MetadataValidator
constructor
A new instance of MetadataValidator.
- #valid?(response) ⇒ Boolean
- #validation_error(response) ⇒ Object
- #verified_signature?(response) ⇒ Boolean
Constructor Details
#initialize(options = {}) ⇒ MetadataValidator
Returns a new instance of MetadataValidator.
6 7 8 |
# File 'lib/mdqt/client/metadata_validator.rb', line 6 def initialize( = {}) @certs = [:certs] || [] end |
Instance Method Details
#certificates ⇒ Object
45 46 47 |
# File 'lib/mdqt/client/metadata_validator.rb', line 45 def certificates @certificates ||= normalize_certs(certs) end |
#certificates? ⇒ Boolean
41 42 43 |
# File 'lib/mdqt/client/metadata_validator.rb', line 41 def certificates? certificates.present? end |
#valid?(response) ⇒ Boolean
21 22 23 24 25 26 27 28 29 |
# File 'lib/mdqt/client/metadata_validator.rb', line 21 def valid?(response) begin errors = schema.validate(Nokogiri::XML(response.data) { |config| config.strict } ) return false unless errors.length.zero? true rescue => oops false end end |
#validation_error(response) ⇒ Object
31 32 33 34 35 36 37 38 39 |
# File 'lib/mdqt/client/metadata_validator.rb', line 31 def validation_error(response) begin errors = schema.validate(Nokogiri::XML(response.data) { |config| config.strict } ) return nil if errors.empty? errors.join("\n") rescue => oops return "Invalid XML! #{oops.to_s}" end end |
#verified_signature?(response) ⇒ Boolean
10 11 12 13 14 15 16 17 18 19 |
# File 'lib/mdqt/client/metadata_validator.rb', line 10 def verified_signature?(response) begin signed_document = Xmldsig::SignedDocument.new(response.data) return true if certificates.any? {|c| signed_document.validate(c)} false rescue => oops STDERR.puts oops false end end |