You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by an...@apache.org on 2010/04/15 15:58:12 UTC

svn commit: r934412 - /jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/server/AbstractWebdavServlet.java

Author: angela
Date: Thu Apr 15 13:58:12 2010
New Revision: 934412

URL: http://svn.apache.org/viewvc?rev=934412&view=rev
Log:
JCR-2607: AbstractWebdavServlet: add protected method sendUnauthorized

Modified:
    jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/server/AbstractWebdavServlet.java

Modified: jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/server/AbstractWebdavServlet.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/server/AbstractWebdavServlet.java?rev=934412&r1=934411&r2=934412&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/server/AbstractWebdavServlet.java (original)
+++ jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/server/AbstractWebdavServlet.java Thu Apr 15 13:58:12 2010
@@ -201,8 +201,7 @@ abstract public class AbstractWebdavServ
 
         } catch (DavException e) {
             if (e.getErrorCode() == HttpServletResponse.SC_UNAUTHORIZED) {
-                webdavResponse.setHeader("WWW-Authenticate", getAuthenticateHeaderValue());
-                webdavResponse.sendError(e.getErrorCode(), e.getStatusPhrase());
+                sendUnauthorized(webdavRequest, webdavResponse, e);
             } else {
                 webdavResponse.sendError(e);
             }
@@ -212,6 +211,25 @@ abstract public class AbstractWebdavServ
     }
 
     /**
+     * Sets the "WWW-Authenticate" header and writes the appropriate error
+     * to the given webdav response.
+     *
+     * @param request The webdav request.
+     * @param response The webdav response.
+     * @param error The DavException that leads to the unauthorized response.
+     * @throws IOException
+     */
+    protected void sendUnauthorized(WebdavRequest request,
+                                    WebdavResponse response, DavException error) throws IOException {
+        response.setHeader("WWW-Authenticate", getAuthenticateHeaderValue());
+        if (error == null || error.getErrorCode() != HttpServletResponse.SC_UNAUTHORIZED) {
+            response.sendError(HttpServletResponse.SC_UNAUTHORIZED);
+        } else {
+            response.sendError(error.getErrorCode(), error.getStatusPhrase());
+        }
+    }
+
+    /**
      * Executes the respective method in the given webdav context
      *
      * @param request