authorization blocks OPTIONS
If a client sends a OPTIONS method for a resource that is under authorization, then mod_auth blocks the other modules from inserting their options since it breaks the calling chain. To make matters worse, the lighttpd core sends a 200 for all OPTIONS requests.
One case where this fails miserably is webdav, the Windows Web Folders client and the davfs2 (neon based) filesystem checks for DAV compliance with OPTIONS before allowing a server. Since mod_auth blocks mod_webdav from inserting it's options and the reply is a 200 (so that the client does not know that it has to send it's credentials) the connection is refused by the client.
I have included a small patch which changes this last behaviour into replying with 401 if authorization is required. I have tested this against both neon and the Windows Web Folders Client and they both work properly now.
Debate is whether this is the correct fix or not. One other fix would be to let mod_auth skip it's checks if HTTP_METHOD_OPTIONS but then I cannot find support in the RFCs for such behaviour so I think that my patch is the correct one :)
Updated by simmel over 15 years ago
I can confirm that this patch works with 1.4.18.
Using WebDAV with auth does NOT work WITHOUT this patch.
Updated by stbuehler about 15 years ago
- Status changed from New to Fixed
- Resolution set to fixed
Fixed in r2086
Also available in: Atom