From e55d96443d64f5cf8b654ca523b2476427273bd8 Mon Sep 17 00:00:00 2001 From: Jan Lehnardt Date: Tue, 16 Nov 2010 10:56:11 +0000 Subject: After authentication, redirect to the path the user requested, not the one that is used internally. git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.0.x@1035582 13f79535-47bb-0310-9956-ffa450edef68 --- src/couchdb/couch_httpd.erl | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/couchdb/couch_httpd.erl b/src/couchdb/couch_httpd.erl index 8a5c699a..d24822aa 100644 --- a/src/couchdb/couch_httpd.erl +++ b/src/couchdb/couch_httpd.erl @@ -769,7 +769,13 @@ error_headers(#httpd{mochi_req=MochiReq}=Req, Code, ErrorStr, ReasonStr) -> {Code, []}; match -> AuthRedirectBin = ?l2b(AuthRedirect), - UrlReturn = ?l2b(couch_util:url_encode(MochiReq:get(path))), + % Redirect to the path the user requested, not + % the one that is used internally. + UrlReturnRaw = case MochiReq:get_header_value("x-couchdb-vhost-path") of + undefined -> MochiReq:get(path); + VHostPath -> VHostPath + end, + UrlReturn = ?l2b(couch_util:url_encode(UrlReturnRaw)), UrlReason = ?l2b(couch_util:url_encode(ReasonStr)), {302, [{"Location", couch_httpd:absolute_uri(Req, <