chunked trailer server-authorization
Gonçalo Silva
goncalo.silva at muzzley.com
Wed Jan 6 11:43:53 CET 2016
Hello,
I'm having problems getting varnish processing this kind of requests.
If i do the request direct to the backend i have no problem and this is the
result:
------
root at Reverse:~# curl --raw -v -X "GET" -H 'Authorization: Hawk id="xxxx",
ts="xxxxx", nonce="xxxxx", mac="akA+pAge015LbAq+fq3YPG9PM0EgSl3/xxxxxx="'
-H 'Host: myhostbackend.com'
http://myhostbackend.com:4050/profiles/89a12688-8653-4f76-bb18-xxxxx
* Hostname was NOT found in DNS cache
* Trying myhostbackend.com...
* Connected to myhostbackend.com (xx.xx.xx.xx) port 4050 (#0)
> GET /profiles/89a12688-8653-4f76-bb18-xxxxxxx HTTP/1.1
> User-Agent: curl/7.35.0
> Accept: */*
> Authorization: Hawk id="xxxx", ts="xxxxx", nonce="xxxxx",
mac="akA+pAge015LbAq+fq3YPG9PM0EgSl3/xxxxxx="
> Host: myhostbackend.com
>
< HTTP/1.1 200 OK
< media-type: application/json;v=v0
< content-type: application/json; charset=utf-8
< cache-control: no-cache
< trailer: server-authorization
< transfer-encoding: chunked
< Date: Tue, 05 Jan 2016 17:17:07 GMT
< Connection: keep-alive
<
228
{"id":"xxxxxxxx","uuid":"89a12688-8653-xxxxxxx-xxxx","kind":"device","name":"apagar","provider":"apagarrr","resourceUrl":"
http://xxx.com/channels","authorizationUrl":"http://xxx.com/authorization
","subscriptionUrl":"http://xxx.com/subscriptions","photoUrl":"
http://xxx.com/images/profile.jpg
","requiredCapabilityVersion":1,"accessList":[],"auth":{"inbound":{},"outbound":{}},"globalManagerAccess":false,"openOauthInBrowser":false}
0
server-authorization: Hawk
mac="RuMz8Rm1DAq3Uuq1HSz/IjCidjn/R73+LnX6pntIKX4=",
hash="vrcvy0YWrI4CO5qMmGP6GLgGy3VexSFvjXdJGeYzBOQ="
* Connection #0 to host xxx.xxx.xxx.xxx left intact
-----
if i do the request via varnish, i'm not getting all the response, and
don't how why but the http header "trailer: server-authorization" doesn't
shows up. I can see "FetchError chunked tail no NL" on the varnish log, but
not sure what it means in this situation.
----
root at Reverse:~# curl --raw -v -X "GET" -H 'Authorization: Hawk id="xxxx",
ts="xxxxx", nonce="xxxxx", mac="akA+pAge015LbAq+fq3YPG9PM0EgSl3/xxxxxx="'
-H 'Host: myhostbackend.com'
http://127.0.0.1:6081/profiles/89a12688-8653-4f76-bb18-xxxxx
* Hostname was NOT found in DNS cache
* Trying 127.0.0.1...
* Connected to 127.0.0.1 (127.0.0.1) port 6081 (#0)
> GET /profiles/89a12688-8653-4f76-bb18-xxxxxxx HTTP/1.1
> User-Agent: curl/7.35.0
> Accept: */*
> Authorization: Hawk id="xxxx", ts="xxxxx", nonce="xxxxx",
mac="akA+pAge015LbAq+fq3YPG9PM0EgSl3/xxxxxx="
> Host: myhostbackend.com
HTTP/1.1 200 OK
< media-type: application/json;v=v0
< content-type: application/json; charset=utf-8
< cache-control: no-cache
< Date: Tue, 05 Jan 2016 17:14:54 GMT
< X-Varnish: 32773
< Age: 0
< Via: 1.1 varnish-v4
< Accept-Ranges: bytes
< Transfer-Encoding: chunked
< Connection: keep-alive
<
00228
{"id":"xxxxxxxx","uuid":"89a12688-8653-xxxxxxx-xxxx","kind":"device","name":"apagar","provider":"apagarrr","resourceUrl":"
http://xxx.com/channels","authorizationUrl":"http://xxx.com/authorization
","subscriptionUrl":"http://xxx.com/subscriptions","photoUrl":"
http://xxx.com/images/profile.jpg
","requiredCapabilityVersion":1,"accessList":[],"auth":{"inbound":{},"outbound":{}},"globalManagerAccess":false,"openOauthInBrowser":false}
* transfer closed with outstanding read data remaining
* Closing connection 0
--------
The log from varnish is:
* << BeReq >> 32774
- Begin bereq 32773 pass
- Timestamp Start: 1452014094.207771 0.000000 0.000000
- BereqMethod GET
- BereqURL /profiles/89a12688-8653-4f76-bb18-3bfe2b829400
- BereqProtocol HTTP/1.1
- BereqHeader User-Agent: curl/7.35.0
- BereqHeader Accept: */*
- BereqHeader Authorization: Hawk idAuthorization: Hawk id="xxxx",
ts="xxxxx", nonce="xxxxx", mac="akA+pAge015LbAq+fq3YPG9PM0EgSl3/xxxxxx="
- BereqHeader Host: myhostbackend.com
- BereqHeader X-Forwarded-For: 127.0.0.1
- BereqHeader X-Varnish: 32774
- VCL_call BACKEND_FETCH
- VCL_return fetch
- BackendOpen 18 boot.apiserver xxx.xxx.xxx.xxx 4050 xxx.xxx.xxx.xxx
34845
- Timestamp Bereq: 1452014094.208532 0.000761 0.000761
- Timestamp Beresp: 1452014094.220400 0.012629 0.011868
- BerespProtocol HTTP/1.1
- BerespStatus 200
- BerespReason OK
- BerespHeader media-type: application/json;v=v0
- BerespHeader content-type: application/json; charset=utf-8
- BerespHeader cache-control: no-cache
- BerespHeader trailer: server-authorization
- BerespHeader transfer-encoding: chunked
- BerespHeader Date: Tue, 05 Jan 2016 17:14:54 GMT
- BerespHeader Connection: keep-alive
- TTL RFC 120 10 -1 1452014094 1452014094 1452014094 0 0
- VCL_call BACKEND_RESPONSE
- TTL VCL 120 10 0 1452014094
- VCL_return deliver
- Storage malloc Transient
- ObjProtocol HTTP/1.1
- ObjStatus 200
- ObjReason OK
- ObjHeader media-type: application/json;v=v0
- ObjHeader content-type: application/json; charset=utf-8
- ObjHeader cache-control: no-cache
- ObjHeader Date: Tue, 05 Jan 2016 17:14:54 GMT
- Fetch_Body 2 chunked stream
- FetchError chunked tail no NL
- BackendClose 18 boot.apiserver
- BereqAcct 310 0 310 246 552 798
- End
If i put the varnish configuration using pipe for this requests, everything
works, but of course i can't cache them.
Can anyone understands what is going on here and if this is a configuration
problem or something more deeper?
Thanks
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.varnish-cache.org/lists/pipermail/varnish-misc/attachments/20160106/8b4ce79c/attachment.html>
More information about the varnish-misc
mailing list