)]}'
{"swift/proxy/controllers/base.py":[{"author":{"_account_id":866,"name":"Chmouel Boudjnah","email":"chmouel@chmouel.com","username":"chmouel"},"change_message_id":"af9d20101a5c118b5c70c33c71d67473e140aada","unresolved":false,"context_lines":[{"line_number":212,"context_line":"            # Call through to the decorated method"},{"line_number":213,"context_line":"            resp \u003d func(*a, **kw)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"            if config_true_value(req.headers.get(\u0027x-web-mode\u0027, \u0027f\u0027)) and \\"},{"line_number":216,"context_line":"                    not controller.is_origin_allowed(cors_info, req_origin):"},{"line_number":217,"context_line":"                return resp"},{"line_number":218,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2BSLo%3D","line":215,"updated":"2014-01-28 12:23:09.000000000","message":"What\u0027s the \u0027f\u0027 for ? I may have an idea for words starting with f but not sure in swift context (or perhaps cors context ;))","commit_id":"237aa6e8d2d6c25b75c84462e2bbe5ff8ce36d8c"},{"author":{"_account_id":995,"name":"David Goetz","email":"david.goetz@rackspace.com","username":"david-goetz"},"change_message_id":"4d679497685dd41ca642245f83509c4bdf4785f7","unresolved":false,"context_lines":[{"line_number":212,"context_line":"            # Call through to the decorated method"},{"line_number":213,"context_line":"            resp \u003d func(*a, **kw)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"            if config_true_value(req.headers.get(\u0027x-web-mode\u0027, \u0027f\u0027)) and \\"},{"line_number":216,"context_line":"                    not controller.is_origin_allowed(cors_info, req_origin):"},{"line_number":217,"context_line":"                return resp"},{"line_number":218,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2BQa4%3D","line":215,"in_reply_to":"AAAAUH%2F%2BSLo%3D","updated":"2014-01-28 22:20:11.000000000","message":"it just means that if the header\u0027s not there config_true_value would eval that to False. but ya- that word was said by me plenty while dealing with cors :)","commit_id":"237aa6e8d2d6c25b75c84462e2bbe5ff8ce36d8c"},{"author":{"_account_id":904,"name":"Adrian Smith","email":"adrian@17od.com","username":"adriansmith"},"change_message_id":"5152856087772ba6738437e0af8463c8420dd919","unresolved":false,"context_lines":[{"line_number":223,"context_line":"            #  - user metadata headers"},{"line_number":224,"context_line":"            #  - headers provided by the user in"},{"line_number":225,"context_line":"            #    x-container-meta-access-control-expose-headers"},{"line_number":226,"context_line":"            if \u0027Access-Control-Expose-Headers\u0027 not in resp.headers:"},{"line_number":227,"context_line":"                expose_headers \u003d ["},{"line_number":228,"context_line":"                    \u0027cache-control\u0027, \u0027content-language\u0027, \u0027content-type\u0027,"},{"line_number":229,"context_line":"                    \u0027expires\u0027, \u0027last-modified\u0027, \u0027pragma\u0027, \u0027etag\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2BFkE%3D","line":226,"updated":"2014-01-30 09:38:26.000000000","message":"Any particular reason for this check? Technically it\u0027s ok but if the decorated method doesn\u0027t set it to include standard headers like \u0027content-type\u0027, \u0027last-modified\u0027, \u0027expired\u0027, etc will clients have a problem with this?","commit_id":"51c4c184a335f5e8bd8bb2b39cc2b3a571548ccd"},{"author":{"_account_id":995,"name":"David Goetz","email":"david.goetz@rackspace.com","username":"david-goetz"},"change_message_id":"dbf52b60a5de1de6f6be7f4657ec52b64f07a21f","unresolved":false,"context_lines":[{"line_number":223,"context_line":"            #  - user metadata headers"},{"line_number":224,"context_line":"            #  - headers provided by the user in"},{"line_number":225,"context_line":"            #    x-container-meta-access-control-expose-headers"},{"line_number":226,"context_line":"            if \u0027Access-Control-Expose-Headers\u0027 not in resp.headers:"},{"line_number":227,"context_line":"                expose_headers \u003d ["},{"line_number":228,"context_line":"                    \u0027cache-control\u0027, \u0027content-language\u0027, \u0027content-type\u0027,"},{"line_number":229,"context_line":"                    \u0027expires\u0027, \u0027last-modified\u0027, \u0027pragma\u0027, \u0027etag\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2BD44%3D","line":226,"in_reply_to":"AAAAUH%2F%2BFkE%3D","updated":"2014-01-30 15:25:49.000000000","message":"This check will only fail if \u0027Access-Control-Expose-Headers\u0027 was set directly on the object- if the user sets invalid headers then I\u0027d say it was their own fault. Hopefully saving cors headers directly to objects is not allowed in most swift clusters- we have it because of several bad reasons not worth getting into :)","commit_id":"51c4c184a335f5e8bd8bb2b39cc2b3a571548ccd"}]}
