view mod_test_data/mod_test_data.lua @ 5390:f2363e6d9a64

mod_http_oauth2: Advertise the currently supported id_token signing algorithm This field is REQUIRED. The algorithm RS256 MUST be included, but isn't because we don't implement it, as that would require implementing a pile of additional cryptography and JWT stuff. Instead the id_token is signed using the client secret, which allows verification by the client, since it's a shared secret per OpenID Connect Core 1.0 ยง 10.1 under Symmetric Signatures. OpenID Connect Discovery 1.0 has a lot of REQUIRED and MUST clauses that are not supported here, but that's okay because this is served from the RFC 8414 OAuth 2.0 Authorization Server Metadata .well-known endpoint!
author Kim Alvefur <zash@zash.se>
date Sun, 30 Apr 2023 16:13:40 +0200
parents af824168729a
children
line wrap: on
line source

local users = { "fezziwig", "badger", "nupkins", "pumblechook", "rouncewell" };
local host = "localhost";

local id = require "util.id";
local st = require "util.stanza";
local sm = require "core.storagemanager";

-- Return a random number from 1..max excluding n
function random_other(n, max) return ((math.random(1, max-1)+(n-1))%max)+1; end

local new_time;
do
	local _current_time = os.time();
	function new_time()
		_current_time = _current_time + math.random(1, 3600);
		return _current_time;
	end
end

function module.command(arg) --luacheck: ignore arg
	sm.initialize_host(host);
	local archive = sm.open(host, "archive", "archive");

	for _ = 1, 100000 do
		local random = math.random(1, #users);
		local user, contact = users[random], users[random_other(random, #users)];
		local user_jid, contact_jid = user.."@"..host, contact.."@"..host;

		local stanza = st.message({ to = contact_jid, from = user_jid, type="chat" })
			:tag("body"):text(id.long());

		archive:append(user, nil, stanza, new_time(), contact_jid)

		local stanza2 = st.clone(stanza);
		stanza2.attr.from, stanza2.attr.to = stanza.attr.to, stanza.attr.from;
		archive:append(contact, nil, stanza2, new_time(), user_jid)
	end
end