webdav+ext base.auth+var=error

itcod nginx-forum at nginx.us
Mon Apr 13 16:58:12 UTC 2015


Вот результат. Пользуйтесь на здоровье. 
Ногами не пинать. эт моя первая программка на lui
https://ihome.itcod.com/max/projects/auth-dav/

Замечания предложения итд пишите мылом ссылку на обсуждение:)

# auth-dav
Nginx Base Authenticate url/.htpasswd for WebDAV and HTTP secure
directory(links). Support CRYPT(3) MD5 SHA-1 secure hash. Test computation
in Lua (5.1)

-- Copyright (c) 2015 by Yura Vdovytchenko (max at itcod.com)
"https://ihome.itcod.com/max/projects/auth-dav/",

Nginx Base Authenticate url/.htpasswd for WebDAV and HTTP secure
directory(links)
Support CRYPT(3) MD5 SHA-1 secure hash.
Test computation in Lua (5.1)
Author by Yura Vdovytchenko 
License MIT

ОПИСАНИЕ

Модуль аутентификации для nginx. Nginx с поддержкой lua 5.1. 
Основная задача модуля обеспечить независимую парольную защиту для каждой
папки на сайте (WEBDAV-хранилище/облака).
Реализовано методом автоматической Base-авторизации при обнаружении в
папке/url файла авторизации (например: .htpasswd).
Поддерживает три базовых метода кодирования CRYPT(3) MD5 SHA1

ЗАМЕЧАНИЯ

На текущий момент WEBDAV-клиенты (BitKenix/FAR-NetDrive) обеспечивают только
авторизацию при первичном входе, и не умеют выдавать запрос авторизации при
переходе в подпапку с иным авторизуемым пользователем. Браузеры умеют.

REQUIRE

require "base64" -- base64.lua https://github.com/toastdriven/lua-base64
local utf8 = require "utf8" -- utf8.lua Kyle Smith
https://gist.github.com/markandgo/5776124
local csv = require("csv") -- lua-csv
https://github.com/geoffleyland/lua-csv
local resty_sha1 = require "resty.sha1" --
https://github.com/openresty/lua-resty-core
local apr = require "apr.core" -- lua-apr
-- Loading the library. crypt -- https://github.com/PlugwiseBV/luacrypt
descrypt = assert(package.loadlib("/usr/local/lib/lua/5.1/crypt.so",
"luaopen_crypt"))

STARTUP

--path lua file: /etc/nginx/lua/auth-dav.lua
--Example Nginx virtual example.conf

server {
    ...
    set $dir /opt/home;
    set $dir_path $dir;
    set $home $dir_path;
    set $sadm_passwd .htpsw;
    set $user_passwd .uhtpasswd;

    location / {
	dav_methods PUT DELETE MKCOL COPY MOVE;
	dav_ext_methods PROPFIND OPTIONS;
	create_full_put_path on;
	dav_access user:rw group:rw;
	client_body_temp_path /opt/itcod-dav.tmp/;
	access_by_lua_file /etc/nginx/lua/auth-dav.lua;
	client_max_body_size 0;
	autoindex on;
        root /opt/home/;

        limit_except GET {
    	    allow all;
    	    #deny all;
        }
    }
    location ~/\.ht {
	deny all;
    }
}

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,257511,258000#msg-258000



Подробная информация о списке рассылки nginx-ru