)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"2d678a02951f20470263fbe8fc0d1b907397d9a9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"1426818e_56da09e5","updated":"2021-11-18 20:47:36.000000000","message":"I take it this is mostly because of clients (such as tempest and swiftclient) wanting to be able to use the full path from the URL when calculating the signature, like in https://github.com/openstack/tempest/blob/29.2.0/tempest/api/object_storage/test_object_temp_url.py#L71-L77 and https://github.com/openstack/python-swiftclient/blob/3.12.0/swiftclient/shell.py#L1476 ?\n\nThe existing notion of \"path\" is definitely more squishy than I\u0027d like it to be. (Consider, for example, how \"/v1/...\" and \"/v1.0/...\" give different signatures. Is that a bug or a feature?) Now I want to check what happens when the client sends an unquoted URL that really *should* have been quoted...\n\nI wonder if we should have a similar option in [app:proxy-server] for the /info endpoint: https://github.com/openstack/swift/blob/2.28.0/swift/proxy/controllers/info.py#L80-L85","commit_id":"836e425387f8869b032dd51eb8c93a5bcb0d5f90"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"41dce4fb9c8c49416aa77e25107dd9496850947f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"f708f45d_d9bb701c","updated":"2021-11-18 15:28:40.000000000","message":"This makes sense!  I noted a few minor style nits that might be an imporvement; a test would be a welcome addition!\n\nI\u0027d also curious, and you might be able to help us confirm, if a client can send a signature matching the un-prefixed path and it would \"just work\"?","commit_id":"836e425387f8869b032dd51eb8c93a5bcb0d5f90"}],"etc/proxy-server.conf-sample":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"41dce4fb9c8c49416aa77e25107dd9496850947f","unresolved":true,"context_lines":[{"line_number":936,"context_line":""},{"line_number":937,"context_line":"# Allow to have swiftproxy endpoint not bound to the root with haproxy"},{"line_number":938,"context_line":"# on-the-fly URL rewriting."},{"line_number":939,"context_line":"# path_prefix \u003d /object"},{"line_number":940,"context_line":""},{"line_number":941,"context_line":"# Note: Put formpost just before your auth filter(s) in the pipeline"},{"line_number":942,"context_line":"[filter:formpost]"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"94d775a2_d68ea0ff","line":939,"updated":"2021-11-18 15:28:40.000000000","message":"maybe even call it: proxy_path_prefix\n\n\t# If you run swift behind a proxy with URL rewriting tempurl needs to know the\n\t# full path for signature calculation, default is no prefix\n\t# proxy_path_prefix \u003d","commit_id":"836e425387f8869b032dd51eb8c93a5bcb0d5f90"}],"swift/common/middleware/tempurl.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"41dce4fb9c8c49416aa77e25107dd9496850947f","unresolved":true,"context_lines":[{"line_number":748,"context_line":"        :returns: a list of (hmac, scope) 2-tuples"},{"line_number":749,"context_line":"        \"\"\""},{"line_number":750,"context_line":""},{"line_number":751,"context_line":"        if \u0027path_prefix\u0027 in self.conf:"},{"line_number":752,"context_line":"            path \u003d \"/\" + self.conf[\u0027path_prefix\u0027].strip(\"/\") + path"},{"line_number":753,"context_line":""},{"line_number":754,"context_line":"        if not request_method:"}],"source_content_type":"text/x-python","patch_set":2,"id":"e7bad48c_15357c43","line":751,"updated":"2021-11-18 15:28:40.000000000","message":"I think typically we\u0027d see an update in __init__ that sets a self.path_prefix attribute\n\nif we do default and normalization there (once) it might make this path manipulation cleaner\n\n    path \u003d prefix + path","commit_id":"836e425387f8869b032dd51eb8c93a5bcb0d5f90"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"dbffe5771d58dff0debfe8bcb4beda92557c27f0","unresolved":true,"context_lines":[{"line_number":749,"context_line":"        \"\"\""},{"line_number":750,"context_line":""},{"line_number":751,"context_line":"        if \u0027path_prefix\u0027 in self.conf:"},{"line_number":752,"context_line":"            path \u003d \"/\" + self.conf[\u0027path_prefix\u0027].strip(\"/\") + path"},{"line_number":753,"context_line":""},{"line_number":754,"context_line":"        if not request_method:"},{"line_number":755,"context_line":"            request_method \u003d env[\u0027REQUEST_METHOD\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"8149dbc0_6bfcab39","line":752,"updated":"2021-12-20 22:04:19.000000000","message":"Do I understand it correctly that it\u0027s pretty much the same thing as url_baase setting for staticweb?\nCan we call this one url_base and let accept the same syntax here?\nShould we?","commit_id":"836e425387f8869b032dd51eb8c93a5bcb0d5f90"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"2d678a02951f20470263fbe8fc0d1b907397d9a9","unresolved":true,"context_lines":[{"line_number":749,"context_line":"        \"\"\""},{"line_number":750,"context_line":""},{"line_number":751,"context_line":"        if \u0027path_prefix\u0027 in self.conf:"},{"line_number":752,"context_line":"            path \u003d \"/\" + self.conf[\u0027path_prefix\u0027].strip(\"/\") + path"},{"line_number":753,"context_line":""},{"line_number":754,"context_line":"        if not request_method:"},{"line_number":755,"context_line":"            request_method \u003d env[\u0027REQUEST_METHOD\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"b7fce267_0a42686e","line":752,"updated":"2021-11-18 20:47:36.000000000","message":"Not saying it\u0027s a good thing, but apparently ceph checks *both* prefixed and non-prefixed: https://github.com/ceph/ceph/blob/51eafb38ac2f798e3e27a4ac3c0e8cf271c68303/src/rgw/rgw_swift_auth.cc#L328-L338","commit_id":"836e425387f8869b032dd51eb8c93a5bcb0d5f90"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"2d678a02951f20470263fbe8fc0d1b907397d9a9","unresolved":true,"context_lines":[{"line_number":874,"context_line":"                         \u0027for tempurls\u0027)"},{"line_number":875,"context_line":"    info_conf[\u0027allowed_digests\u0027] \u003d sorted(allowed_digests)"},{"line_number":876,"context_line":""},{"line_number":877,"context_line":"    register_swift_info(\u0027tempurl\u0027, **info_conf)"},{"line_number":878,"context_line":"    conf.update(info_conf)"},{"line_number":879,"context_line":""},{"line_number":880,"context_line":"    return lambda app: TempURL(app, conf)"}],"source_content_type":"text/x-python","patch_set":2,"id":"8d9197e4_68a2cd9f","line":877,"updated":"2021-11-18 20:47:36.000000000","message":"We almost certainly want this new config getting registered in /info.","commit_id":"836e425387f8869b032dd51eb8c93a5bcb0d5f90"}]}
