Open caboteria opened 12 years ago
The problem seems to be in omniauth_openid_connect-b12d89d5744b/lib/omniauth/strategies/openid_connect.rb
.
def check_id!(id_token)
raise ::OpenIDConnect::Exception.new('No ID Token was given.') if id_token.blank?
::OpenIDConnect::ResponseObject::IdToken.decode(
id_token, (get_idp_signing_key() || options[:client_secret])
)
end
get_idp_signing_key seems to return some sort of key object, but options[:client_secret] is a string, which causes the crash. It looks as if get_idp_signing_key() will return nil if the config file doesn't have either a x509_url
or jwk_url
parameter, which it doesn't by default.
It looks as if you can avoid this crash by adding an additional_properties
property of either x509_url
or jwk_url
. x509 takes precedence if you have both.
For nov/openid_connect_sample
these url's are /cert.pem
and /jwk.json
.
I'm playing with the gateway and pointed it at nov/openid_connect_sample. The authorization request seems to work, and then the gateway POSTS to the OP for the access token. The OP responds and the gateway crashes on the response.
NoMethodError at /auth/openid_connect/callback undefined method `verify' for #String:0xa427de0 Ruby /home/tobyc/.rvm/gems/ruby-1.9.2-p180/gems/json-jwt-0.3.3/lib/json/jws.rb: in valid?, line 76
The contents of the response to the access token request are: