Jabsimul with SASL Integration is a benchmarking tool for Jabber/XMPP Servers which have SASL authentication. It also has the support for starttls.
The SASL and starttls implementation is mine. Other than this project is not mine.
I have implemented the protocol named XEP-0034: SASL Integration.
Other then jabsimul benchmark feature it has the extra feature of XMPP SASL authentication. I have enabled the SASL plain mechanism of authentication for xmpp login.
With that now you can have the benchmark of jabsimul with SASL authentication.
As list:
- Implemented “XMPP TLS” from http://xmpp.org/rfcs/rfc3920.html
- Implemented “SASL AUTH” from http://xmpp.org/rfcs/rfc3920.html
First start a TCP connection to the XMPP server. Then convert this TCP connection to TLS with starttls schema request. Then select the SASL auth mechanism and start the the XMPP communication with TLS. The TLS connection holds when the SASL mechanism complete a successful handshake.
- Protocol Messaging Details with sequence -
<stream:stream to="intel.com" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams">
<stream:stream xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client' id='ojTsAaoSvVKdKfmW' from='intel.com' version='1.0'>
<stream:features>
<starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls"><required/></starttls>
<mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl">
<mechanism>PLAIN</mechanism><mechanism>X-OAUTH2</mechanism>
</mechanisms>
</stream:features>
<starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>
<proceed xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>
Implementation details are available here
cd jabsimul/jab_simul/
vi jab_simul.xml
Change jabber.localhost to your XMPP server address. Fill the xml file with you necessary configuration.
Compile it:
./configure
make
Now you can execute it:
./jab_simul