AnsweredAssumed Answered

Sparkweb basic HTTP-BIND issues

Question asked by eamundson on Feb 28, 2013
Latest reply on Mar 4, 2013 by Daryl Herzmann

I'm trying to get Sparkweb working with Openfire 3.8.0.

 

I'm running on CentOS, usign apache for Sparkweb.html file, but using Openfire's built-in web server for everything else.

 

I have SparkWeb working if I use "socket" connections on port 5222.

 

However, my goal is to get SparkWeb working using "https" connections.

 

When I try to use "http" or "https" bindings in SparkWeb, it just hangs after entering login credentials.

Debugging "https" is painful, so I stepped back to "http" to see if it's a general http-bind issue.  It appears it is.  The same thing happens (hangs after entering credentials) when I use http.

 

I have done a packet capture (using wireshark) when attempting to login with Sparkweb, and I encounter a "Server error".

 

Below is the relevant piece of SparkWeb.html (the rest of the file is unaltered from the SparkWeb download package):

<script type="text/javascript">

function jive_sparkweb_getConfig()

{

        return {

                server: "{servername-omitted}",

                connectionType: "http",

                port: "7070",

                bindPath: "/http-bind",

                autoLogin: "false",

                        policyFileURL: "xmlsocket://{servername-omitted}:5229"

        };

}

</script>

 

Here is the packet capture (capturing only port 7070) (red is sent from client to server, blue is sent from server to client):

POST /http-bind/ HTTP/1.0

Accept: */*

Accept-Language: en-US

Referer: http://{servername-omitted}/sparkweb/SparkWeb.swf

x-flash-version: 11,6,602,171

Content-Type: text/xml

Content-Length: 193

User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; MS-RTC LM 8; MS-RTC EA 2; .NET4.0C; .NET4.0E)

Host: {servername-omitted}:7070

Connection: Keep-Alive

Pragma: no-cache

 

<body xmlns:xmpp="urn:xmpp:xbosh" xmlns="http://jabber.org/protocol/httpbind" rid="718238" hold="1" secure="false" to="{servername-omitted}" xmpp:version="1.0" xml:lang="en" wait="20" ver="1.6" />

HTTP/1.1 200 OK

Content-Type: text/xml;charset=UTF-8

Access-Control-Allow-Origin: *

Access-Control-Allow-Methods: PROPFIND, PROPPATCH, COPY, MOVE, DELETE, MKCOL, LOCK, UNLOCK, PUT, GETLIB, VERSION-CONTROL, CHECKIN, CHECKOUT, UNCHECKOUT, REPORT, UPDATE, CANCELUPLOAD, HEAD, OPTIONS, GET, POST

Access-Control-Allow-Headers: Overwrite, Destination, Content-Type, Depth, User-Agent, X-File-Size, X-Requested-With, If-Modified-Since, X-File-Name, Cache-Control

Access-Control-Max-Age: 86400

Content-Length: 573

Connection: keep-alive

Server: Jetty(7.x.y-SNAPSHOT)

 

<body xmlns="http://jabber.org/protocol/httpbind" xmlns:stream="http://etherx.jabber.org/streams" authid="5d02aacf" sid="5d02aacf" secure="true" requests="2" inactivity="30" polling="5" wait="20" hold="1" ack="718238" maxpause="300" ver="1.6"><stream:features><mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><mechanism>PLAIN</mechanism></mechanis ms><compression xmlns="zlibhttp://jabber.org/features/compress"><method>zlib</method></compression><bin d xmlns="urn:ietf:params:xml:ns:xmpp-bind"/><session xmlns="urn:ietf:params:xml:ns:xmpp-session"/></stream:features></body>

POST /http-bind/ HTTP/1.0

Accept: */*

Accept-Language: en-US

Referer: http://{servername-omitted}/sparkweb/SparkWeb.swf

x-flash-version: 11,6,602,171

Content-Type: text/xml

Content-Length: 213

User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; MS-RTC LM 8; MS-RTC EA 2; .NET4.0C; .NET4.0E)

Host: meltdown.oati.net:7070

Connection: Keep-Alive

Pragma: no-cache

 

<body xmlns="http://jabber.org/protocol/httpbind" sid="5d02aacf" rid="718239"><auth xmlns="urn:ietf:params:xml:ns:xmpp-sasl" mechanism="PLAIN">ZXJpa2FAbWVsdGRvd24ub2F0aS5uZXQAZXJpa2EAY29hY2hPVUNIIQ==</aut h></body>

HTTP/1.1 500 Server Error

Cache-Control: must-revalidate,no-cache,no-store

Content-Type: text/html;charset=ISO-8859-1

Content-Length: 1283

Connection: keep-alive

Server: Jetty(7.x.y-SNAPSHOT)

 

<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/>
<title>Error 500 Server Error</title>
</head>
<body>
<h2>HTTP ERROR: 500</h2>
<p>Problem accessing /http-bind/. Reason:
<pre>    Server Error</pre></p>
<hr /><i><small>Powered by Jetty://</small></i>
                                               
                                               
                                               
                                               
                                               
                                               
                                               
                                               
                                               
                                               
                                               
                                               
                                               
                                               
                                               
                                               
                                               
                                               
                                               
                                               
</body>
</html>
POST /http-bind/ HTTP/1.0

Accept: */*

Accept-Language: en-US

Referer: http://meltdown.oati.net/sparkweb/SparkWeb.swf

x-flash-version: 11,6,602,171

Content-Type: text/xml

Content-Length: 97

User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; MS-RTC LM 8; MS-RTC EA 2; .NET4.0C; .NET4.0E)

Host: meltdown.oati.net:7070

Connection: Keep-Alive

Pragma: no-cache

 

<body xmlns="http://jabber.org/protocol/httpbind" sid="5d02aacf" rid="718240" type="terminate" />

HTTP/1.1 200 OK

Content-Type: text/xml;charset=UTF-8

Access-Control-Allow-Origin: *

Access-Control-Allow-Methods: PROPFIND, PROPPATCH, COPY, MOVE, DELETE, MKCOL, LOCK, UNLOCK, PUT, GETLIB, VERSION-CONTROL, CHECKIN, CHECKOUT, UNCHECKOUT, REPORT, UPDATE, CANCELUPLOAD, HEAD, OPTIONS, GET, POST

Access-Control-Allow-Headers: Overwrite, Destination, Content-Type, Depth, User-Agent, X-File-Size, X-Requested-With, If-Modified-Since, X-File-Name, Cache-Control

Access-Control-Max-Age: 86400

Content-Length: 74

Connection: keep-alive

Server: Jetty(7.x.y-SNAPSHOT)

 

<body xmlns="http://jabber.org/protocol/httpbind" type="terminate"></body>

 

This also shows up in the 'warn.log' file:

2013.02.28 15:25:09 org.eclipse.jetty.servlet.ServletHandler - /http-bind/

java.util.concurrent.RejectedExecutionException

        at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(Unknown Source)

        at java.util.concurrent.ThreadPoolExecutor.reject(Unknown Source)

        at java.util.concurrent.ThreadPoolExecutor.execute(Unknown Source)

        at org.jivesoftware.openfire.http.HttpSessionManager$HttpPacketSender.init(HttpSes sionManager.java:417)

        at org.jivesoftware.openfire.http.HttpSessionManager$HttpPacketSender.access$200(H ttpSessionManager.java:405)

        at org.jivesoftware.openfire.http.HttpSessionManager.forwardRequest(HttpSessionMan ager.java:319)

        at org.jivesoftware.openfire.http.HttpBindServlet.handleSessionRequest(HttpBindSer vlet.java:254)

        at org.jivesoftware.openfire.http.HttpBindServlet.parseDocument(HttpBindServlet.ja va:176)

        at org.jivesoftware.openfire.http.HttpBindServlet.doPost(HttpBindServlet.java:145)

        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)

        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)

        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:547)

        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:480)

        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:22 5)

        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:94 1)

        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:409)

        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186 )

        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:875 )

        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)

        at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandler Collection.java:250)

        at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.jav a:149)

        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110)

        at org.eclipse.jetty.server.Server.handle(Server.java:349)

        at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:441)

        at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.j ava:936)

        at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:801)

        at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:224)

        at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:51 )

        at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.jav a:586)

        at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java :44)

        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598 )

        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533)

        at java.lang.Thread.run(Unknown Source)

 

Is there something special I have to do to get basic http-bind working?  I have ticked the radio button in the admin console for enabling http-bind, but it seems this path "/http-bind/" is not liked by the server.  What else must I do to get this working?

 

Any assistance would be greatly appreciated.

 

Thanks - Erik

Outcomes