Commit c0c2d5c

mo <mo.khan@gmail.com>
2018-02-04 01:08:08
move subcommands to separate files.
1 parent b2c9415
Changed files (3)
lib/saml/kit/cli/decode.rb
@@ -0,0 +1,38 @@
+module Saml
+  module Kit
+    module Cli
+      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
+
+        desc "post saml", "Decodes the SAMLRequest/SAMLResponse using the HTTP Post binding"
+        def post(saml_request)
+          binding = Saml::Kit::Bindings::HttpPost.new(location: '')
+          document = binding.deserialize('SAMLRequest' => saml_request)
+          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
+    end
+  end
+end
lib/saml/kit/cli/generate.rb
@@ -0,0 +1,34 @@
+module Saml
+  module Kit
+    module Cli
+      class Generate < Thor
+        desc "keypair", "Create a key pair using a self signed certificate."
+        method_option :format, default: "pem", required: false, enum: ["pem", "env"]
+        method_option :passphrase, default: nil, required: false
+        def keypair
+          passphrase = options[:passphrase]
+          format = options[:format]
+          generator = ::Xml::Kit::SelfSignedCertificate.new
+          certificate, private_key = generator.create(passphrase: passphrase)
+
+          if "pem" == format
+            say "** BEGIN PEM Format **", :green
+            print certificate
+            say private_key
+            say "***********************", :green
+          else
+            say "** BEGIN ENV Format **", :green
+            say "X509_CERTIFICATE=" + certificate.inspect
+            say
+            say "PRIVATE_KEY=" + private_key.inspect
+            say "***********************", :green
+          end
+
+          say
+          say "Private Key Passphrase:", :green
+          say passphrase.inspect
+        end
+      end
+    end
+  end
+end
lib/saml/kit/cli.rb
@@ -1,72 +1,13 @@
 require "saml/kit"
-require "saml/kit/cli/version"
 require "thor"
 
+require "saml/kit/cli/version"
+require "saml/kit/cli/decode"
+require "saml/kit/cli/generate"
+
 module Saml
   module Kit
     module Cli
-      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
-
-        desc "post saml", "Decodes the SAMLRequest/SAMLResponse using the HTTP Post binding"
-        def post(saml_request)
-          binding = Saml::Kit::Bindings::HttpPost.new(location: '')
-          document = binding.deserialize('SAMLRequest' => saml_request)
-          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 Generate < Thor
-        desc "keypair", "Create a key pair using a self signed certificate."
-        method_option :format, default: "pem", required: false, enum: ["pem", "env"]
-        method_option :passphrase, default: nil, required: false
-        def keypair
-          passphrase = options[:passphrase]
-          format = options[:format]
-          generator = ::Xml::Kit::SelfSignedCertificate.new
-          certificate, private_key = generator.create(passphrase: passphrase)
-
-          if "pem" == format
-            say "** BEGIN PEM Format **", :green
-            print certificate
-            say private_key
-            say "***********************", :green
-          else
-            say "** BEGIN ENV Format **", :green
-            say "X509_CERTIFICATE=" + certificate.inspect
-            say
-            say "PRIVATE_KEY=" + private_key.inspect
-            say "***********************", :green
-          end
-
-          say
-          say "Private Key Passphrase:", :green
-          say passphrase.inspect
-        end
-      end
-
       class Application < Thor
         desc "decode SUBCOMMAND ...ARGS", "decode SAMLRequest/SAMLResponse."
         subcommand "decode", Decode