view mod_c2s_limit_sessions/mod_c2s_limit_sessions.lua @ 5416:2393dbae51ed

mod_http_oauth2: Add option for specifying TTL of registered clients Meant to simplify configuration, since TTL vs ignoring expiration is expected to be the main thing one would want to configure. Unsure what the implications of having unlimited lifetime of clients are, given no way to revoke them currently, short of rotating the signing secret. On one hand, it would be annoying to have the client expire. On the other hand, it is trivial to re-register it.
author Kim Alvefur <zash@zash.se>
date Thu, 04 May 2023 18:41:33 +0200
parents f581210093a7
children
line wrap: on
line source

-- mod_c2s_limit_sessions

local next, count = next, require "util.iterators".count;

local max_resources = module:get_option_number("max_resources", 10);

local sessions = hosts[module.host].sessions;
module:hook("resource-bind", function(event)
	local session = event.session;
	if count(next, sessions[session.username].sessions) > max_resources then
		session:close{ condition = "policy-violation", text = "Too many resources" };
		return false
	end
end, -1);