You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Gordon Sim (JIRA)" <ji...@apache.org> on 2011/02/28 20:11:36 UTC

[jira] Assigned: (QPID-1896) No-auth Windows broker fails client connection with "Selected mechanism not supported"

     [ https://issues.apache.org/jira/browse/QPID-1896?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gordon Sim reassigned QPID-1896:
--------------------------------

    Assignee: Steve Huston

Steve, what do you think about this? Shall I commit the patch to get PLAIN supported on windows when auth=no? Or do you prefer to keep it down to ANONYMOUS in that case (which I accept makes perfect sense)?

> No-auth Windows broker fails client connection with "Selected mechanism not supported"
> --------------------------------------------------------------------------------------
>
>                 Key: QPID-1896
>                 URL: https://issues.apache.org/jira/browse/QPID-1896
>             Project: Qpid
>          Issue Type: Bug
>          Components: C++ Broker
>         Environment: Windows XP SP 3, VC++ 9.0
>            Reporter: Pete MacKinnon
>            Assignee: Steve Huston
>         Attachments: windows-sasl-noauth.patch
>
>
> If a client offers any non-empty auth mechanism (e.g., "PLAIN"), the windows C++ broker will fail to start/tune the connection with "Selected mechanism not supported" eventhough it has authorization disabled ("--auth=no").
> void ConnectionHandler::start(const FieldTable& /*serverProps*/, const Array& mechanisms, const Array& /*locales*/)
> {
>     checkState(NOT_STARTED, INVALID_STATE_START);
>     setState(NEGOTIATING);
>     sasl = SaslFactory::getInstance().create(*this);
>     std::string mechlist;
>     bool chosenMechanismSupported = mechanism.empty();
>     for (Array::const_iterator i = mechanisms.begin(); i != mechanisms.end(); ++i) {
>         if (!mechanism.empty() && mechanism == (*i)->get<std::string>()) {
>             chosenMechanismSupported = true;
>             mechlist = (*i)->get<std::string>() + SPACE + mechlist;
>         } else {
>             if (i != mechanisms.begin()) mechlist += SPACE;
>             mechlist += (*i)->get<std::string>();
>         }
>     }
>     if (!chosenMechanismSupported) {
>         fail("Selected mechanism not supported: " + mechanism);
>     }

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org