mod_rest/mod_rest.lua
changeset 4738 e58ec4b3cf90
parent 4731 e6f46d1b3337
child 4739 58a20d5ac6e9
equal deleted inserted replaced
4737:755dd83e9214 4738:e58ec4b3cf90
    54 			return false;
    54 			return false;
    55 		end
    55 		end
    56 		return token_info.session;
    56 		return token_info.session;
    57 	end
    57 	end
    58 	return nil;
    58 	return nil;
       
    59 end
       
    60 
       
    61 if module:get_option_string("authentication") == "anonymous" and module:get_option_boolean("anonymous_rest") then
       
    62 	www_authenticate_header = nil;
       
    63 	function check_credentials(request) -- luacheck: ignore 212/request
       
    64 		return {
       
    65 			username = id.medium():lower();
       
    66 			host = module.host;
       
    67 		}
       
    68 	end
    59 end
    69 end
    60 
    70 
    61 -- (table, string) -> table
    71 -- (table, string) -> table
    62 local function amend_from_path(data, path)
    72 local function amend_from_path(data, path)
    63 	local st_kind, st_type, st_to = path:match("^([mpi]%w+)/(%w+)/(.*)$");
    73 	local st_kind, st_type, st_to = path:match("^([mpi]%w+)/(%w+)/(.*)$");
   231 	local from;
   241 	local from;
   232 	local origin;
   242 	local origin;
   233 	local echo = path == "echo";
   243 	local echo = path == "echo";
   234 	if echo then path = nil; end
   244 	if echo then path = nil; end
   235 
   245 
   236 	if not request.headers.authorization then
   246 	if not request.headers.authorization and www_authenticate_header then
   237 		response.headers.www_authenticate = www_authenticate_header;
   247 		response.headers.www_authenticate = www_authenticate_header;
   238 		return post_errors.new("noauthz");
   248 		return post_errors.new("noauthz");
   239 	else
   249 	else
   240 		origin = check_credentials(request);
   250 		origin = check_credentials(request);
   241 		if not origin then
   251 		if not origin then