Subject: Cause of server not requiring Start-Tls
I have an issue where 2 clients register to the same Cisco IM & Presence from the same process/application. The first client1 is required starttls and offered two Sasl-Mechanisms but client2 registering is NOT required to send starttls and is only offered PLAIN as sasl mechanism.
I also remark that the client2 is not reusing the stream (different stream id's)
If I switch the clients so that client2 is registering first I get the that client2 has starttls required and offered 2 sasl-mechanisms and client1 only gets 1 sasl-mechanism.
Any ideas what might cause this behavior?
Client1 correct registration
Client2 without starttls required and only 1 sasl-mechanism
I also remark that the client2 is not reusing the stream (different stream id's)
If I switch the clients so that client2 is registering first I get the that client2 has starttls required and offered 2 sasl-mechanisms and client1 only gets 1 sasl-mechanism.
Any ideas what might cause this behavior?
Client1 correct registration
- S = Client send
- R = Client Received
- E = Event in Matrix
- S:
- <stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" to="mycompany.org" version="1.0" >
- R:
- <stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" xml:lang="en-US.UTF-8" id="28BC104F770C" from="mycompany.org" version="1.0" >
- R:
- <stream:features xmlns:stream="http://etherx.jabber.org/streams">
- <starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls">
- <required />
- </starttls>
- </stream:features>
- S:
- <starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls" />
- R:
- <proceed xmlns="urn:ietf:params:xml:ns:xmpp-tls" />
- S:
- <stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" to="mycompany.org" version="1.0" >
- R:
- <stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" xml:lang="en-US.UTF-8" id="28BC104F770C" from="mycompany.org" version="1.0" >
- R:
- <stream:features xmlns:stream="http://etherx.jabber.org/streams">
- <mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl">
- <mechanism>PLAIN</mechanism>
- <mechanism>CISCO-VTG-TOKEN</mechanism>
- </mechanisms>
- </stream:features>
- E: OnBeforeSasl
- S:
- <auth mechanism="CISCO-VTG-TOKEN" xmlns="urn:ietf:params:xml:ns:xmpp-sasl">auth-token-removed-in-log</auth>
- R:
- <success xmlns="urn:ietf:params:xml:ns:xmpp-sasl" />
- E: OnLogin
- S:
- <stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" to="mycompany.org" version="1.0" >
- R:
- <stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" xml:lang="en-US.UTF-8" id="28BC104F770C" from="mycompany.org" version="1.0" >
- R:
- <stream:features xmlns:stream="http://etherx.jabber.org/streams">
- <bind xmlns="urn:ietf:params:xml:ns:xmpp-bind" />
- <session xmlns="urn:ietf:params:xml:ns:xmpp-session" />
- <sm xmlns="urn:xmpp:sm:3">
- <optional />
- </sm>
- <mdm xmlns="http://protocols.cisco.com/mdm:1">
- <optional />
- </mdm>
- </stream:features>
- E: OnBindStart
- S:
- <iq id="MX_1" type="set" xmlns="jabber:client">
- <bind xmlns="urn:ietf:params:xml:ns:xmpp-bind">
- <resource>myResource</resource>
- </bind>
- </iq>
- R:
- <iq id="MX_1" type="result" xmlns="jabber:client">
- <bind xmlns="urn:ietf:params:xml:ns:xmpp-bind">
- <jid>myUser@mycompany.org/myResource</jid>
- </bind>
- </iq>
- E: OnBind
- S:
- <iq id="MX_2" type="set" xmlns="jabber:client">
- <session xmlns="urn:ietf:params:xml:ns:xmpp-session" />
- </iq>
- R:
- <iq id="MX_2" type="result" xmlns="jabber:client" />
- S:
- <presence xmlns="jabber:client">
- <status></status>
- <priority>0</priority>
- </presence>
- R:
- <presence from="myUser@mycompany.org/myResource" to="myUser@mycompany.org" xmlns="jabber:client">
- <status />
- <priority>0</priority>
- </presence>
Client2 without starttls required and only 1 sasl-mechanism
- S:
- <stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" to="mycompany.org" version="1.0" >
- R:
- <stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" from="mycompany.org" id="720bae45d920d238" version="1.0" >
- R:
- <stream:features xmlns:stream="http://etherx.jabber.org/streams">
- <starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls" />
- <compression xmlns="http://jabber.org/features/compress">
- <method>zlib</method>
- </compression>
- <mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl">
- <mechanism>PLAIN</mechanism>
- </mechanisms>
- </stream:features>
- S:
- <starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls" />
- R:
- <proceed xmlns="urn:ietf:params:xml:ns:xmpp-tls" />
- S:
- <stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" to="mycompany.org" version="1.0" >
- R:
- <stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" from="mycompany.org" id="b6dcd86388ad33df" version="1.0" >
- R:
- <stream:features xmlns:stream="http://etherx.jabber.org/streams">
- <compression xmlns="http://jabber.org/features/compress">
- <method>zlib</method>
- </compression>
- <mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl">
- <mechanism>PLAIN</mechanism>
- </mechanisms>
- </stream:features>
- S:
- <auth mechanism="PLAIN" xmlns="urn:ietf:params:xml:ns:xmpp-sasl">MREmADH8Njg3Mjgy</auth>
- R:
- <failure xmlns="urn:ietf:params:xml:ns:xmpp-sasl">
- <not-authorized />
- </failure>