Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
Description
Before adding the ability to negotiate SASL mechanism (in QPID-6116) the required mechanism could be specified with parameter 'mechanism' in Client.start(...). The client still support this parameter but sasl object is not created and receipt of connection.start results in error as the one below:
Error in handler: connection_start Traceback (most recent call last): File "/home/alex/qpid/python/qpid/delegate.py", line 47, in __call__ return handler(channel, frame) File "/home/alex/qpid/python/qpid/client.py", line 167, in connection_start self.client.response = self.client.sasl.initialResponse() AttributeError: 'NoneType' object has no attribute 'initialResponse'
In general, it is not good idea to specify the mechanism explicitly. The client application should rely on existing negotiation logic. However, the client should keep backward compatibility and should respect the provided mechanism: at least it can check whether mechanism is supported by the broker and create sasl object to drive sasl negotiation if mechanism is supported; otherwise, throw sasl exception