Commit 7058ecb

mo <mo.khan@gmail.com>
2018-02-04 00:33:45
add decode redirect command.
1 parent ea6af18
Changed files (2)
exe
lib
saml
exe/saml-kit
@@ -2,4 +2,4 @@
 
 require "saml/kit/cli"
 
-Saml::Kit::Cli::Application.start
+Saml::Kit::Cli::Application.start(ARGV)
lib/saml/kit/cli.rb
@@ -1,15 +1,33 @@
+require "saml/kit"
 require "saml/kit/cli/version"
 require "thor"
 
 module Saml
   module Kit
     module Cli
-      class Application < Thor
-        desc "foo", "prints foo"
-        def foo
-          puts "foo"
+      class Decode < Thor
+        desc "redirect uri", "Decodes the uri using the HTTP Redirect binding"
+        def redirect(uri)
+          binding = Saml::Kit::Bindings::HttpRedirect.new(location: '')
+          uri = URI.parse(uri)
+          query_params =  Hash[uri.query.split('&').map { |x| x.split('=', 2) }]
+          document = binding.deserialize(query_params)
+
+          2.times { say "" }
+          say_status :success, "Decoded #{document.class}"
+          print_table [
+            ["ID", "Issuer", "Version", "Issue instant"],
+            [document.id, document.issuer, document.version, document.issue_instant.iso8601 ]
+          ]
+          say ""
+          say document.to_xml(pretty: true), :green
         end
       end
+
+      class Application < Thor
+        desc "decode SUBCOMMAND ...ARGS", "decode a SAMLRequest/SAMLResponse"
+        subcommand "decode", Decode
+      end
     end
   end
 end