0

Converse.js successfully makes requests to Prosody bosh but the chat client never actually connects. In the console I can see it hitting the bosh endpoint and after each request it outputs to the console:

"Server did not yet offer a supported authentication mechanism. Sending a blank poll request."

I can hit the bosh endpoint from my browser as well, the proxy pass appears to be working as intended and bosh is running and responding to requests.

Any insight is much appreciated.

tacobell
  • 61
  • 1
  • 7
  • Thanks for the replies. I will try these if the need arises again. Before these replies I ended up trying and going with the websocket option. I enabled it in prosody along with cross-domain for the proxy pass. `consider_websocket_secure = true; cross_domain_websocket = { "https://adomainname.com" };` – tacobell Dec 28 '18 at 16:26

2 Answers2

1

The error message is quite clear. Prosody is not offering a SASL authentication mechanism supported by Converse.

By default Converse supports SCRAM-SHA1, DIGEST-MD5 and PLAIN.

Your XMPP server needs to support one of these.

JC Brand
  • 2,652
  • 18
  • 18
1

I came across this issue as well while using the fullpage demo. The problem was because Prosody was forcing encrypted authentication only for client side.

I recommend going into the config file /etc/prosody/prosody.cfg.lua

Look for the code

-- Force clients to use encrypted connections? This option will
-- prevent clients from authenticating unless they are using encryption.

c2s_require_encryption = true

By default for me this was set to true, change this to false

c2s_require_encryption = false

save it and reboot Prosody

systemctl restart prosody

you could also do

prosodyctl restart
gstlouis
  • 113
  • 2
  • 10
  • This would disable this requirement over xmpp as well and I would not want to do that long term as a work around for the sake of the web client. Thanks for the suggestion. – tacobell Dec 28 '18 at 16:28
  • So serve converse over https and do the call? – gstlouis Dec 29 '18 at 23:35
  • I want to use prosody over the xmpp protocol on port 5223 in addition to using converse in the browser. If I use your suggestion, my understanding is it will not enforce encryption on 5223. – tacobell Jan 05 '19 at 00:48
  • I do not think your understand. My suggestion for testing over http:// which encryption can be false since you are serving http that has no encryption. If you want everything to be secure, then you need to do the call over https, this will do a call with encryption and you can leave c2s_require_encryption to true. refer to this link that explains the same on https://github.com/conversejs/converse.js/issues/1387#issuecomment-450551221 – gstlouis Jan 08 '19 at 11:59