Error in jcr-server Webdav HTTP header - DAV Explorer won't log in ------------------------------------------------------------------
Key: JCR-286 URL: http://issues.apache.org/jira/browse/JCR-286 Project: Jackrabbit Type: Bug Reporter: Peter Darton Priority: Minor At present, DAV Explorer won't log in to the JCR WebDav servlet - it doesn't even ask for a username & password. (Neither the Microsoft WinXP WebDAV & Novell's NetDrive were as fussy and were happy to log in) Using Ethereal, I compared the traffic for a valid Slide WebDav login compared to a JCR WebDav login. I've now found and fixed the problem on my local build, and I've now got DAV Explorer to work with JCR Webdav. Here's a description of the bugfix: In jackrabbit/contrib/jcr-server/server/src/java/org/apache/jackrabbit/server/AbstractWebdavServlet.java, there is a public static final String DEFAULT_AUTHENTICATE_HEADER. This is currently set to "Basic Realm=Jackrabbit Webdav Server". This is not a valid string for use in this context as it is in breach of RFC2617 for 2 reasons: 1) "Realm" should be "realm" 2) "Jackrabbit Webdav Server" should be in quotes, i.e. "\"Jackrabbit Webdav Server\"" According to http://www.ietf.org/rfc/rfc2617.txt, a valid challenge would be: WWW-Authenticate: Basic realm="WallyWorld" Note that "realm" is not capitalised and "WallyWorld" has been enclosed in quotes (the "WWW-Authenticate: " string is held elsewhere in the Java code and is correct) In other words, AbstractWebdavServlet.java line 82, which currently reads: public static final String DEFAULT_AUTHENTICATE_HEADER = "Basic Realm=Jackrabbit Webdav Server"; should be changed to read public static final String DEFAULT_AUTHENTICATE_HEADER = "Basic realm=\"Jackrabbit Webdav Server\""; -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira