Hi, I'm observing the following error after updating ruby-saml from 1.16.0 to 1.17.0:
/usr/local/bundle/gems/ruby-saml-1.17.0/lib/onelogin/ruby-saml/settings.rb:316:in `validate_sp_certs_params!': undefined method `empty?' for an instance of OpenSSL::X509::Certificate (NoMethodError)
cert = certificate && !certificate.empty?
^^^^^^^
from /usr/local/bundle/gems/ruby-saml-1.17.0/lib/onelogin/ruby-saml/settings.rb:309:in `get_all_sp_certs'
from /usr/local/bundle/gems/ruby-saml-1.17.0/lib/onelogin/ruby-saml/settings.rb:213:in `get_sp_certs'
from /usr/local/bundle/gems/ruby-saml-1.17.0/lib/onelogin/ruby-saml/settings.rb:252:in `get_sp_decryption_keys'
from /usr/local/bundle/gems/ruby-saml-1.17.0/lib/onelogin/ruby-saml/response.rb:972:in `generate_decrypted_document'
from /usr/local/bundle/gems/ruby-saml-1.17.0/lib/onelogin/ruby-saml/response.rb:70:in `initialize'
from saml_response.rb:8:in `new'
from saml_response.rb:8:in `<main>'
I've tested the following code snippet:
require 'onelogin/ruby-saml'
certificate = OpenSSL::X509::Certificate.new(File.read('ruby-saml.crt'))
private_key = File.read('ruby-saml.key')
saml_response = Base64.decode64(File.read('signed_message_encrypted_signed_assertion.xml.base64'))
response =
OneLogin::RubySaml::Response.new(
saml_response,
settings: OneLogin::RubySaml::Settings.new(certificate:, private_key:)
)
pp response
I've used the certificate, key, and xml from this repo to test it:
wget https://raw.githubusercontent.com/SAML-Toolkits/ruby-saml/refs/heads/master/test/certificates/ruby-saml.crt
wget https://raw.githubusercontent.com/SAML-Toolkits/ruby-saml/refs/heads/master/test/certificates/ruby-saml.key
wget https://raw.githubusercontent.com/SAML-Toolkits/ruby-saml/refs/heads/master/test/responses/signed_message_encrypted_signed_assertion.xml.base64
(My assumption is that ruby-saml.crt and ruby-saml.key have been used for encryption, otherwise I would get another error with version 1.16.0 like OpenSSL::PKey::PKeyError: EVP_PKEY_decrypt: failed to decrypt)
Any idea why this fails after updating from 1.16.0 to 1.17.0? Code in settings.rb hasn't been changed with the new version.
With version 1.16.0, a valid response is rendered. I've tested with Ruby 3.3.4 and 3.3.5.
Hi, I'm observing the following error after updating ruby-saml from 1.16.0 to 1.17.0:
I've tested the following code snippet:
I've used the certificate, key, and xml from this repo to test it:
(My assumption is that ruby-saml.crt and ruby-saml.key have been used for encryption, otherwise I would get another error with version 1.16.0 like
OpenSSL::PKey::PKeyError: EVP_PKEY_decrypt: failed to decrypt)Any idea why this fails after updating from 1.16.0 to 1.17.0? Code in settings.rb hasn't been changed with the new version.
With version 1.16.0, a valid response is rendered. I've tested with Ruby 3.3.4 and 3.3.5.