You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Gregor Berginc (JIRA)" <ji...@apache.org> on 2017/08/10 20:38:03 UTC

[jira] [Commented] (PROTON-1532) Undefined method "plain" for SASL in Ruby binding

    [ https://issues.apache.org/jira/browse/PROTON-1532?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16122279#comment-16122279 ] 

Gregor Berginc commented on PROTON-1532:
----------------------------------------

I agree, however the current ruby binding uses this [here|https://github.com/apache/qpid-proton/blob/master/proton-c/bindings/ruby/lib/reactor/connector.rb#L91].

In the meantime I further analysed Python binding and C code and I managed to get it working. Not fully tested yet, but it's a start. I extended SASL, Connector and Connection classes as well as changed the connect method to be more like the one in Python - in particular enable the insecure mechanisms.

I can share a PR if that is an appropriate way?

> Undefined method "plain" for SASL in Ruby binding
> -------------------------------------------------
>
>                 Key: PROTON-1532
>                 URL: https://issues.apache.org/jira/browse/PROTON-1532
>             Project: Qpid Proton
>          Issue Type: Bug
>          Components: ruby-binding
>         Environment: Centos, Ubuntu
>            Reporter: Gregor Berginc
>            Assignee: Alan Conway
>
> When I try to connect to an AMQP endpoint using the URL of the form amqp://user:password@host:port, I get an error about a missing "plain" method. This occurs in [this line|https://github.com/apache/qpid-proton/blob/master/proton-c/bindings/ruby/lib/reactor/connector.rb#L91]. This error can be reproduced simply using the following code
> {code:ruby}
> 2.3.3 :001 > require "qpid_proton"
>  => true 
> 2.3.3 :002 > transport = Qpid::Proton::Transport.new
>  => #<Qpid::Proton::Transport:0x00000002754548 @impl=#<SWIG::TYPE_p_pn_transport_t:0x00000002754520 @__swigtype__="_p_pn_transport_t", @proton_wrapper=#<Qpid::Proton::Transport:0x00000002754548 ...>>> 
> 2.3.3 :003 > sasl = transport.sasl
>  => #<Qpid::Proton::SASL:0x00000002748518 @impl=#<SWIG::TYPE_p_pn_sasl_t:0x000000027484f0 @__swigtype__="_p_pn_sasl_t">> 
> 2.3.3 :004 > sasl.plain('', '')
> NoMethodError: undefined method `plain' for #<Qpid::Proton::SASL:0x00000002748518>
> from (irb):4
> from /usr/share/rvm/rubies/ruby-2.3.3/bin/irb:11:in `<main>'
> {code}
> I have tried in Ubuntu 16.04 installing Proton via system packages and gem 0.10.1 from Rubygems as well as in Centos 7, following the source code install guide.
> I wonder if this method should be exposed by Swig somehow? Python binding does not use it in that way, but it does set the username and password on the connection.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org