Bug #17233
closedsome keep-web requests using c= don't work
Description
This request is generated by Cyberduck, it seems like it should work but it doesn't.
{"RequestID":"req-1bz38ijso63i716a35qy",
"level":"info",
"msg":"response",
"remoteAddr":"127.0.0.1:41152",
"reqBytes":0,
"reqForwardedFor":"3.89.228.49",
"reqHost":"collections.ce8i5.arvadosapi.com",
"reqMethod":"HEAD",
"reqPath":"c=ce8i5-4zz18-pzhhgc044vbuoxm/",
"reqQuery":"",
"respBody":"404 Not found\r\n\r\nThe requested path was not found, or you do not have permission to access it.\r\n",
"respBytes":96,
"respStatus":"Not Found",
"respStatusCode":404,
"time":"2021-01-05T17:07:22.219050006Z",
"timeToStatus":0.026523,
"timeTotal":0.026557,
"timeWriteBody":0.000034}
This request is generated by Windows:
{"RequestID":"reqtzwx0pocsev2hmhstspb",
"level":"info",
"msg":"response",
"remoteAddr":"127.0.0.1:42598",
"reqBytes":0,
"reqForwardedFor":"3.89.228.49",
"reqHost":"collections.ce8i5.arvadosapi.com",
"reqMethod":"OPTIONS",
"reqPath":"c=ce8i5-4zz18-pzhhgc044vbuoxm",
"reqQuery":"",
"respBody":"404 Not found\r\n\r\nThe requested path was not found, or you do not have permission to accessit.\r\n",
"respBytes":96,
"respStatus":"Not Found",
"respStatusCode":404,
"time":"2021-01-05T17:16:24.142407917Z",
"timeToStatus":0.021505,
"timeTotal":0.021510,
"timeWriteBody":0.000005}
GNOME is broken too???
{"RequestID":"req-18iwgg2lmca4twzhsw3v",
"level":"info",
"msg":"response",
"remoteAddr":"127.0.0.1:43266",
"reqBytes":0,
"reqForwardedFor":"108.7.59.164",
"reqHost":"collections.ce8i5.arvadosapi.com",
"reqMethod":"OPTIONS",
"reqPath":"c=ce8i5-4zz18-pzhhgc044vbuoxm",
"reqQuery":"",
"respBody":"404 Not found\r\n\r\nThe requested path was not found, or you do not have permission to access it.\r\n",
"respBytes":96,
"respStatus":"Not Found",
"respStatusCode":404,
"time":"2021-01-05T17:20:30.643741632Z",
"timeToStatus":0.019790,
"timeTotal":0.019795,
"timeWriteBody":0.000005}
Updated by Peter Amstutz about 4 years ago
- Description updated (diff)
- Subject changed from Request for mountain duck doesn't work to some keep-web requests using c= don't work
Updated by Peter Amstutz about 4 years ago
This works (generated by workbench2):
{"RequestID":"req-1fwo59s6jasxp1vj0grk",
"level":"info",
"msg":"request",
"remoteAddr":"127.0.0.1:43928",
"reqBytes":0,
"reqForwardedFor":"108.7.59.164",
"reqHost":"download.ce8i5.arvadosapi.com",
"reqMethod":"OPTIONS",
"reqPath":"c=ce8i5-4zz18-pzhhgc044vbuoxm",
"reqQuery":"",
"time":"2021-01-05T17:24:39.071499532Z"}
Updated by Peter Amstutz about 4 years ago
Adding a "/_" to the end doesn't work either. Also, Windows won't accept a trailing slash.
{"RequestID":"req-se467u94nzdn1qybgymw","level":"info","msg":"response","remoteAddr":"127.0.0.1:45192","reqBytes":0,"reqForwardedFor":"3.89.228.49","reqHost":"collections.ce8i5.arvadosapi.com","reqMethod":"OPTIONS","reqPath":"c=ce8i5-4zz18-pzhhgc044vbuoxm/_","reqQuery":"","respBody":"404 Not found\r\n\r\nThe requested path was not found, or you do not have permission to access it.\r\n","respBytes":96,"respStatus":"Not Found","respStatusCode":404,"time":"2021-01-05T17:32:34.503138003Z","timeToStatus":0.025640,"timeTotal":0.025651,"timeWriteBody":0.000010}
Cyberduck allows a trailing slash but also doesn't work.
{"RequestID":"req-1an89334q51nzkbstz4u","level":"info","msg":"response","remoteAddr":"127.0.0.1:46062","reqBytes":297,"reqForwardedFor":"3.89.228.49","reqHost":"collections.ce8i5.arvadosapi.com","reqMethod":"PROPFIND","reqPath":"c=ce8i5-4zz18-pzhhgc044vbuoxm/_/","reqQuery":"","respBody":"404 Not found\r\n\r\nThe requested path was not found, or you do not have permission to access it.\r\n","respBytes":96,"respStatus":"Not Found","respStatusCode":404,"time":"2021-01-05T17:38:02.162975901Z","timeToStatus":0.011779,"timeTotal":0.011789,"timeWriteBody":0.000010}
Updated by Peter Amstutz about 4 years ago
- Status changed from New to Closed
Two findings:
1)
Accessing "/c=uuid" without an authorization header it returns 404. Windows and Cyberduck try accessing the resource without an authorization header first so they get an error and give up. GNOME does something else.
If you go to "/by_uuid/uuid" then keep-web returns 401, which informs the webdav client to present the user with the username/password dialog.
2)
Using collections.xxxxx.arvadosapi.com will deliberately not accept valid credentials unless "trust all content" flag is on.
We need to use either
uuid.collections.xxxxx.arvadosapi.com
or
download.xxxxx.arvadosapi.com
Updated by Peter Amstutz about 4 years ago
- Target version changed from 2021-01-20 Sprint to 2021-01-06 Sprint