Во-первых, для вас, другие читатели, моя аутентификация была выполнена для Django с использованием WSGI-скрипта аутентификации .
Итак, суть вопроса в том, чтобы дать каждому пользователю Django, в данном случае, свой собственный каталог WebDav, отделенный от других пользователей. Предполагая следующую настройку WebDAV в конфигурации виртуальных сайтов Apache (обычно в / etc / apache2 / sites-enabled / )
<Directory /webdav/root/on/server>
DAV On
# No .htaccess allowed
AllowOverride None
Options Indexes
AuthType Basic
AuthName "Login to your webdav area"
Require valid-user
AuthBasicProvider wsgi
WSGIAuthUserScript /where/is/the/authentication-script.wsgi
</Directory>
Обратите внимание, что публичный адрес для WebDav еще не настроен. Это и пользовательская область зафиксированы в двух строках в одном и том же файле конфигурации (поместите их после заключительного предложения):
RewriteEngine On
RewriteRule ^/webdav-url/(.*?)$ /webdav/root/on/server/%{LA-U:REMOTE_USER}/$1
Теперь доступ к webdav осуществляется по http://my -server.com / webdav-url / Пользователь получает приглашение для входа в систему и затем попадает в подкаталог к корню webdav с тем же именем, что и их имя пользователя. LA-U: заставляет Apache "смотреть вперед" и позволяет пользователю войти в систему до , определяя путь монтирования, что крайне важно, поскольку этот путь зависит от имени пользователя. Без некоторого правила перезаписи не будет URL, и пользователь не получит приглашение для входа в систему. Другими словами, LA-U избегает ловушки 22 для этого типа обработки входа в систему.
Меры предосторожности : требуется включить mod_rewrite, а имена пользователей должны быть действительными в качестве имен dir без каких-либо изменений. Кроме того, пользовательские каталоги не будут создаваться автоматически этими командами, поэтому их существование должно быть гарантировано другим способом.