lib/saml/kit/cli/report.rb in saml-kit-cli-0.3.5 vs lib/saml/kit/cli/report.rb in saml-kit-cli-0.3.6

- old
+ new

@@ -32,44 +32,78 @@ text end end def build_table_for(document) - table = [ - ['ID', document.id], - ['Issuer', document.issuer], - ['Version', document.version], - ['Issue Instant', document.issue_instant.iso8601], - ['Type', document.send(:name)], - ['Valid', document.valid?], - ['Signed?', !!document.signed?], - ['Trusted?', !!document.trusted?], - ] + table = [ ] case document + when Saml::Kit::Document + table.push(['ID', document.id]) + table.push(['Issuer', document.issuer]) + table.push(['Version', document.version]) + table.push(['Issue Instant', document.issue_instant.iso8601]) + table.push(['Type', document.send(:name)]) + table.push(['Valid', document.valid?]) + table.push(['Signed?', !!document.signed?]) + table.push(['Trusted?', !!document.trusted?]) + when Saml::Kit::Metadata + table.push(['Entity Id', document.entity_id]) + table.push(['Type', document.send(:name)]) + table.push(['Valid', document.valid?]) + table.push(['Name Id Formats', document.name_id_formats.inspect]) + table.push(['Organization', document.organization_name]) + table.push(['Url', document.organization_url]) + table.push(['Contact', document.contact_person_company]) + [ + 'SingleSignOnService', + 'SingleLogoutService', + 'AssertionConsumerService' + ].each do |type| + document.services(type).each do |service| + table.push([type, [service.location, service.binding]]) + end + end + document.certificates.each do |certificate| + table.push(['', certificate.x509.to_text]) + end + end + if document.signature.present? + signature = document.signature + table.push(['Digest Value', signature.digest_value]) + table.push(['Expected Digest Value', signature.expected_digest_value]) + table.push(['Digest Method', signature.digest_method]) + table.push(['Signature Value', truncate(signature.signature_value)]) + table.push(['Signature Method', signature.signature_method]) + table.push(['Canonicalization Method', signature.canonicalization_method]) + table.push(['', signature.certificate.x509.to_text]) + end + case document when Saml::Kit::AuthenticationRequest table.push(['ACS', document.assertion_consumer_service_url]) table.push(['Name Id Format', document.name_id_format]) when Saml::Kit::LogoutRequest table.push(['Name Id', document.name_id]) when Saml::Kit::Response table.push(['Assertion Present?', document.assertion.present?]) table.push(['Issuer', document.assertion.issuer]) table.push(['Name Id', document.assertion.name_id]) - table.push(['Signed?', document.assertion.signed?]) + table.push(['Signed?', !!document.assertion.signed?]) table.push(['Attributes', document.assertion.attributes.inspect]) table.push(['Not Before', document.assertion.started_at]) table.push(['Not After', document.assertion.expired_at]) table.push(['Audiences', document.assertion.audiences.inspect]) table.push(['Encrypted?', document.assertion.encrypted?]) table.push(['Decryptable', document.assertion.decryptable?]) - end - if document.signature.present? - table.push(['Digest Value', document.signature.digest_value]) - table.push(['Digest Method', document.signature.digest_method]) - table.push(['Signature Value', truncate(document.signature.signature_value)]) - table.push(['Signature Method', document.signature.signature_method]) - table.push(['Canonicalization Method', document.signature.canonicalization_method]) - table.push(['Certificate', document.signature.certificate.x509.to_text]) + if document.assertion.present? + signature = document.assertion.signature + table.push(['Digest Value', signature.digest_value]) + table.push(['Expected Digest Value', signature.expected_digest_value]) + table.push(['Digest Method', signature.digest_method]) + table.push(['Signature Value', truncate(signature.signature_value)]) + table.push(['Signature Method', signature.signature_method]) + table.push(['Canonicalization Method', signature.canonicalization_method]) + table.push(['', signature.certificate.x509.to_text]) + end end table end end end