# File lib/omniauth/strategies/saml.rb, line 86 def response_fingerprint response = request.params["SAMLResponse"] response = (response =~ /^</) ? response : Base64.decode64(response) document = XMLSecurity::SignedDocument::new(response) cert_element = REXML::XPath.first(document, "//ds:X509Certificate", { "ds"=> 'http://www.w3.org/2000/09/xmldsig#' }) base64_cert = cert_element.text cert_text = Base64.decode64(base64_cert) cert = OpenSSL::X509::Certificate.new(cert_text) Digest::SHA1.hexdigest(cert.to_der).upcase.scan(/../).join(':') end