Jetty 403 Forbidden Error from Proxy using Openfire BOSH


I have a jsjac client, apache 1.5 with libproxy and Jetty/Openfire for http-binding. It’s worked fairly well but has had some persistent and erratic problems with disconnections. Yesterday I finally isolated the problem, I think.

I was experiencing unpredictable disconnections caused by Jetty returning a 403 Forbidden error page, and I did a test with an iChat client on the other end passing messages in through the standard 5222 port. The result was that the messages sent FROM the iChat client, if sent too quickly in succession (less than 5 seconds apart), would provoke the 403 Forbidden error as they were passed OUT from Openfire TOWARD the jsjac client, causing the jsjac client to disconnect (because it received HTML instead of valid XMPP).

Inbound and outbound presence packets did not seem to trigger the 403, and neither did messages passed from the jsjac client to Openfire. To isolate the cause, I replaced Openfire with ejabberd 2.0 (with httpbinding), and the 403 errors never occurred.

Now, before I replace the Openfire server I’ve been using for a year on my site, I wanted to do some more thorough research on this. My question is this: is this a known issue with the Openfire/Jetty connection manager? If so, how can I look at bug reports, or at least debugging output, for the connection manager itself, or for Jetty? I have several thousand users, so switching chat servers at this point is not a fun prospect.



We’re seeing this same issue. I’d love to see some kind of response to this…

I searched around some more, and while I’m still not sure exactly what’s causing this problem (some people have indicated it may be a bug in JSJaC, but I didn’t see any details of what that bug might be) I did find recommendations to set the following system properties with the following values:

xmpp.httpbind.client.requests.polling = 0

xmpp.httpbind.client.requests.wait = 10

I set them and that seems to have cleared up the problem for now. Your mileage may very.