我们的应用程序的安全性是通过使用用户详细信息服务的基本身份验证配置构建的。现在,我们要求在3次失败的登录尝试后禁用用户。
我一直在尝试在Internet上搜索有关实现方法的一些想法,但是我仅找到引用表单登录的示例。
是否有可用于基本身份验证的登录失败处理程序。我看过用CREATE PROCEDURE getFavChefsDetailsAndExperience(IN usr_id int) RETURNS ?
BEGIN
DECLARE n INT DEFAULT 0;
DECLARE i INT DEFAULT 0;
DROP TEMPORARY TABLE IF EXISTS myFavChefsIds;
CREATE TEMPORARY TABLE IF NOT EXISTS myFavChefsIds
AS (SELECT fk_usr_chef_id, @curRow := @curRow + 1 AS row_no
FROM followers
JOIN (SELECT @curRow := 0) r
WHERE fk_usr_id = usr_id);
DROP TEMPORARY TABLE IF EXISTS myFavChefsDetails;
CREATE TEMPORARY TABLE IF NOT EXISTS myFavChefsDetails
AS (SELECT *
FROM ( SELECT * FROM users u INNER JOIN zipcodes z
ON u.fk_zip_id = z.zip_id
GROUP BY usr_firstname, usr_lastname) AS D
LEFT JOIN ( SELECT
fk_usr_chef_id,
count(DISTINCT fk_mls_id) as mls_cooked,
count(*) as ord_finished,
sum(rat_weight)/count(rat_weight),1) as avg_rating
FROM ratings r
RIGHT JOIN orders o ON o.fk_rat_id = r.rat_id
LEFT JOIN meals m ON o.fk_mls_id = m.mls_id
WHERE mls_date<now()
AND o.fk_usr_cons_id IS NOT null) AS E
ON D.usr_id = E.fk_usr_chef_id);
IF NOT EXISTS (SELECT * FROM myFavChefsIds)
THEN
SET i=0;
SELECT COUNT(*) AS n FROM myFavChefsIds;
WHILE i<n DO
SET i = i + 1;
// IS IT POSSIBLE TO DO SOMETHING LIKE THIS?
x = SELECT ... FROM ... WHERE row_no = i
IF (i != n) THEN x += UNION
END WHILE;
//RETURN UNION STATEMENT
END IF;
END;
配置exceptionHandling()
,但它甚至没有被触发。