-
Notifications
You must be signed in to change notification settings - Fork 615
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
HTTPI::SSLError and Yodlee #403
Comments
no idea. you could try using a different httpi adapter to exclude possible adapter-specific problems. |
stackoverflow said you might want to try changing the ssl version. |
From these listed adpaters HTTPI.adapter = :curb # or one of [:httpclient, :em_http, :net_http] I am only able to set the :net_http in other cases I get LoadError: cannot load such file -- curb when trying to run my code i rails console. first. |
please read the httpi documentation. you need to manage the adapter client gems yourself, |
Thx. Now I'm getting sth. much more readeable (with HTTPClient adapter): HTTPI GET request to sdk11.yodlee.com (httpclient) I tryied pointing explicitly by ssl_cert_file: and ssl_ca_cert_file: to /etc/ssl/certs/ca-certificates.crt but still the same |
I've made some progress in finding what is going on here. I understand that Savon uses HTTPI and HTTPI uses now HTTPClient adapter (setted by me). So I gave a try this code from this issue and tryied; client = HTTPClient.new And it works I don't get the error above just proper response. So maybe You know how to get it done by somehow manage to do sth. similiar to this line client.ssl_config.add_trust_ca("/etc/ssl/certs") ? Becouse I want to use Savon, it really served me well. EDIT: |
great work. assuming you're using the latest version of savon and httpi,
|
But still there sth. wrong with passing the option I run this code: Savon.client(wsdl: 'https://sdk11.yodlee.com/yodsoap/services/CobrandLoginService?wsdl2', ssl_ca_cert_file: "/etc/ssl/certs", ssl_verify_mode: :peer).operations And the error still occurs. |
kinda hart to remote-debug this. are you using the correct ssl version? |
Error shows always SSLv3: Even if I specify for exmaple ssl_version: :SSLv2 |
no idea what this response means, but it looks like the server uses SSLv3 |
Still your sugestion about how it should work failed :, It looks like this line https://github.com/savonrb/httpi/blob/f68f49ce912eebea1433b918c4d3ace6eb381645/lib/httpi/adapter/httpclient.rb#L56 is not fired. I'm debugging this now to be sure about that. |
I've followed with debugger and find out that this line is not triggerred: Becouse @request.auth.ssl? is nil so the code I would like to be started, doesn't gets fired up. |
can you come up with some simple code or maybe even a spec to reproduce this? |
This is the only code You need: require "savon" HTTPI.adapter = :httpclient I've wrote the adapter assigment implicitly to point to the adapter I was debugging. EDIT 1: EDIT 2: I see that always at this point there is no object HTTPI::Auth::SSL it is being created by this method https://github.com/savonrb/httpi/blob/f68f49ce912eebea1433b918c4d3ace6eb381645/lib/httpi/auth/config.rb#L69 So even if I pass in Savon options this: I always get :peer becouse of this code: |
We're having the same problem here using Savon v1 with Yodlee. Exact same error: HTTPI::SSLError: SSL_connect SYSCALL returned=5 errno=0 state=unknown state If you would like to collaborate, feel free to give us (NYC Devshop) a call 212 380 8730
|
It seems that it is sth. between Savon and HTTPI, becouse options are not passed right. The error you are getting guys is becouse you use default adapter net_http and the error is really unclear. Try installing gem 'httpclient' EDIT: |
I've modified this method
The error no longer appears but savon returns empty array for 'operations' so I can't make specific request. |
I've tried it manually: sc = Savon.client do Like was mentioned here #373 EDIT: |
I've finally managed to make it work. The tutorial I was following was a bit confusing in this matter. Savon.client(wsdl: 'https://sdk11.yodlee.com/yodsoap/services/CobrandLoginService?wsdl', ssl_verify_mode: :none).operations Maybe becouse I've updated to savon 2.1.0 from 2.0.2 and the verify_mode: :none is working like charm, though http://nycdevshop.com/blog/the-yodlee-api-and-rails-part-1-starting-the-conversation here it was :peer. But now I want to connect on my computer using Savon (not working in the stage server console all the time :P) through the stage server (becouse its IP is whitelisted). I'm trying to use this option proxy: "http://my_stage_server.com" but I'm getting; HTTPClient::BadResponseError: connect to ssl proxy failed with status 401 Unauthorized I tryied even this: proxy: "http://name:password@my_stage_server.com" But still the same please help with this final obstacle. |
Local port forwarding did the trick ;) |
@camol-sb I'm still not 100% what you changed to get this working - can you please elaborate? When I use :none it still doesn't work. How did you fix this? (BTW I wrote that tutorial you are using - it worked fine for me with Yodlee dev, but when we switched to the Yodlee production credentials, we started having the issues) |
That is odd. I was surprised that it suddenly worked. Try setting the ssl version to tlsv1 I had to do this when I use the ssh tunnel and for assurance try savon v2.1.0. For now I think those are the only differences between us. |
@camol-sb i tested the following code using the latest versions of savon and httpi: client = Savon.client(
wsdl: "https://sdk11.yodlee.com/yodsoap/services/CobrandLoginService?wsdl2",
ssl_ca_cert_file: "/etc/ssl/certs",
ssl_verify_mode: :peer
)
client.operations when you follow the stack through httpi, you can see that it calls the am i missing something? |
Does savon is able to work with wsdl2 or only with wsdl? Becouse this code:
@client.operations gives empty array. I manged to go connect to CobrandLoginService and it is ok. But when I use https://sdk11.yodlee.com/yodsoap/services/TransactionSearchService_12_0?wsdl2 without "2" at the end I can't see the xml i get |
i don't know the correct address for the wsdl of your service. you should find it in the documentation for the yodlee service. the "axis2" error message indicates, that there is no wsdl for the service under that address. |
@davidlesches maybe there is sth. wrong with your production credentials? Please mail me [email protected] so we will be able to talk more specifially about Yodlee stuff |
@davidlesches could You please share with me some of your expirience with yodlee? Maybe the email way will be the best, becouse I'm having problems with getting transactions from Yodlee please mail me thx. |
Late to the party, but we got Savon working very well with Yodlee, deployed on Heroku with a Proximo proxy IP. We are deploying all of the wsdl's locally, which I found to be a little slow, but it works. Thanks to @davidlesches for the great tutorial which served as my starting point. |
The issue here seems to be that |
Hi all!
I've encountered a strange problem. I'm using Savon to connect to Yodlee's API but when trying to initiate the client object I get:
HTTPI::SSLError: SSL_connect SYSCALL returned=5 errno=0 state=unknown state
I've already tried stuff like ssl_verify_mode: :none etc. But nothing seems to work. Most of similiar bugs I saw on the Web had sth. like state=SSLv3 at the end of the error but mine is different. Does anyone has a single clue what is going on here? Thx for any suggestions.
The text was updated successfully, but these errors were encountered: