lib/saml/kit/cli/xml_digital_signature.rb in saml-kit-cli-0.3.0 vs lib/saml/kit/cli/xml_digital_signature.rb in saml-kit-cli-0.3.1

- old
+ new

@@ -1,17 +1,26 @@ +require 'uri' + module Saml module Kit module Cli class XmlDigitalSignature < Thor desc "verify file", "Verify if the contents of a file has a valid signature." method_option :format, default: "short", required: false, enum: ["short", "full"] def verify(file) format = options[:format] - path = File.expand_path(file) - say_status :status, "Attempting to read #{path}...", :yellow - content = IO.read(path) - document = ::Xml::Kit::Document.new(content) + uri = URI.parse(file) rescue nil + if uri.nil? + path = File.expand_path(file) + say_status :status, "Attempting to read #{path}...", :yellow + content = IO.read(path) + else + say_status :status, "Downloading from #{uri}...", :yellow + content = Net::HTTP.get_response(uri).body.chomp + end + document = ::Xml::Kit::Document.new(content) + say document.to_xml(pretty: true) if document.valid? say_status :success, "#{file} is valid", :green else document.errors.full_messages.each do |error| say_status :error, error, :red