JsJac SALS authentification error

Wildfire debug log:

2007.01.31 13:40:13 SaslException

javax.security.sasl.SaslException: DIGEST-MD5: digest response format violation. Incompatible charset value: utf-8

at com.sun.security.sasl.digest.DigestMD5Server.validateClientResponse(DigestMD5Se rver.java:378)

at com.sun.security.sasl.digest.DigestMD5Server.evaluateResponse(DigestMD5Server.j ava:226)

at org.jivesoftware.wildfire.net.SASLAuthentication.handle(SASLAuthentication.java :312)

at org.jivesoftware.wildfire.SessionPacketRouter.route(SessionPacketRouter.java:64 )

at org.jivesoftware.wildfire.http.HttpSessionManager.forwardRequest(HttpSessionMan ager.java:224)

at org.jivesoftware.wildfire.http.HttpBindServlet.handleSessionRequest(HttpBindSer vlet.java:143)

at org.jivesoftware.wildfire.http.HttpBindServlet.doPost(HttpBindServlet.java:105)

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

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

at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:491)

at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:367)

at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:185)

at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)

at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:689)

at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:391)

at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)

at org.mortbay.jetty.Server.handle(Server.java:285)

at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:457)

at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:765 )

at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:627)

at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:209)

at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:357)

at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:329)

at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)

JsJac:

send:

Just a guess… Is it possible that JsJac is expecting to recieve UTF-8 and baulks at utf-8 ? I believe the RFC’'s say it is case insensitive, but JsJac might only accept uppercase.

It looks like according to RFC2831 utf-8 is case insensitive because it is not explicitly stated that it is case sensitive. Either way, the response from JsJac is useing lowercase anyway. The response looks correct in terms of specification, so it looks like there may be a bug lingering somewhere. What version of Wildfire are you using?

Wildfire 3.2 RC2

I find 3 unreadeable character after “charset=utf-8” in client response decoded by server. (Sorry for my english)

Message was edited by: ikan

According to what you posted above in #3, there are some NULLs appended at the end from the client response. Wildfire is thinking those NULL’‘s are apart of the character encoding type. So, this does seem to be a client issue- the client should not pad the output with NULL’‘s. It will work with some servers though, since NULL tends to indicate the end of a string some servers may just ignore the trailing NULL’'s. Thats somewhat incorrect behavior according to RFC3548, though.

And so, how can I solve it? (I have the same problem)

Fixing JsJac code? And how?