Skip to content

Commit 2d1ac00

Browse files
committed
Merge pull request #86 from FriendsOfSymfony/lookup-origin-url
do not use x-original-url for backing up the url.
2 parents 8382ecc + 1b1374d commit 2d1ac00

File tree

3 files changed

+19
-12
lines changed

3 files changed

+19
-12
lines changed

doc/varnish-configuration.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,13 @@ Varnish 4
152152
Your backend application should respond to the ``application/vnd.fos.user-context-hash``
153153
request with :ref:`a proper user hash <return context hash>`.
154154

155+
.. note::
156+
157+
We do not use ``x-original-url`` here, as the header will be sent to the
158+
backend and some applications look at this header, which would lead to
159+
problems. For example, the Microsoft IIS rewriting module uses this header
160+
and Symfony2 has to look into that header to support IIS.
161+
155162
.. note::
156163

157164
If you want the context hash to be cached, you need to always set the

tests/Functional/Fixtures/varnish-3/user_context.vcl

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ sub vcl_recv {
1414
&& (req.http.cookie || req.http.authorization)
1515
&& (req.request == "GET" || req.request == "HEAD")
1616
) {
17-
set req.http.x-original-url = req.url;
18-
set req.http.x-original-accept = req.http.accept;
17+
set req.http.x-fos-original-url = req.url;
18+
set req.http.x-fos-original-accept = req.http.accept;
1919

2020
set req.http.accept = "application/vnd.fos.user-context-hash";
2121

@@ -38,11 +38,11 @@ sub vcl_recv {
3838
if (req.restarts > 0
3939
&& req.http.accept == "application/vnd.fos.user-context-hash"
4040
) {
41-
set req.url = req.http.x-original-url;
42-
set req.http.accept = req.http.x-original-accept;
41+
set req.url = req.http.x-fos-original-url;
42+
set req.http.accept = req.http.x-fos-original-accept;
4343

44-
unset req.http.x-original-url;
45-
unset req.http.x-original-accept;
44+
unset req.http.x-fos-original-url;
45+
unset req.http.x-fos-original-accept;
4646

4747
# Force the lookup, the backend must tell not to cache or vary on the
4848
# user hash to properly separate cached data.

tests/Functional/Fixtures/varnish-4/user_context.vcl

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ sub vcl_recv {
1616
&& (req.http.cookie || req.http.authorization)
1717
&& (req.method == "GET" || req.method == "HEAD")
1818
) {
19-
set req.http.x-original-url = req.url;
20-
set req.http.x-original-accept = req.http.accept;
19+
set req.http.x-fos-original-url = req.url;
20+
set req.http.x-fos-original-accept = req.http.accept;
2121

2222
set req.http.accept = "application/vnd.fos.user-context-hash";
2323

@@ -40,11 +40,11 @@ sub vcl_recv {
4040
if (req.restarts > 0
4141
&& req.http.accept == "application/vnd.fos.user-context-hash"
4242
) {
43-
set req.url = req.http.x-original-url;
44-
set req.http.accept = req.http.x-original-accept;
43+
set req.url = req.http.x-fos-original-url;
44+
set req.http.accept = req.http.x-fos-original-accept;
4545

46-
unset req.http.x-original-url;
47-
unset req.http.x-original-accept;
46+
unset req.http.x-fos-original-url;
47+
unset req.http.x-fos-original-accept;
4848

4949
# Force the lookup, the backend must tell not to cache or vary on the
5050
# user hash to properly separate cached data.

0 commit comments

Comments
 (0)