gpt4 book ai didi

liferay - 记录 Liferay 登录尝试

转载 作者:行者123 更新时间:2023-12-02 11:05:58 25 4
gpt4 key购买 nike

我想知道是否有一种方法可以记录 Liferay 6.2 中的所有登录尝试。我的目标是监控所有登录尝试(成功和失败),这样我就可以构建一个 ELK 仪表板并查看是否出现突然的峰值,例如:登录尝试失败 - 可能是因为某种机器人正在渗透我的网站。

到目前为止,我没有找到任何默认设置或功能来记录所有登录及其凭据。我也想看看哪个用户名尝试登录。

如果有适当的登录前和登录后事件,我可以在钩子(Hook)中使用,这对我来说也很好。那时我会自己处理日志记录任务。可悲的是,到目前为止我的尝试都没有成功。我无法将凭据包含在我的日志字符串中。

最佳答案

没有这样的开箱即用的功能。

但是,就像在 Liferay 中通常一样,您有两个选择:

  • 检查市场是否有相应的插件
  • 或者自己创建这样的插件

市场上有一个插件可以满足您的需求:Audit EE

我从未使用过它,所以我无法告诉你任何有关它的信息。

如果您对它提供的选项不满意,这里是自己编写插件解决方案:

如果您只想记录失败的尝试,则需要实现 AuthFailure 类:

public LogLoginFailures implements AuthFailure {

public void onFailureByEmailAddress(long companyId, String emailAddress,
Map<String, String[]> headerMap,
Map<String, String[]> parameterMap) throws AuthException {
MyLoginLogUtil.logFailure(emailAddress);
}

// Implement the two other onFailure... methods the same way

}

您需要自己编写MyLoginLogUtil。您可以使用通过 Liferay Service Builder 创建的 Liferay 服务。

要声明您的 AuthFailure 实例,您只需将其添加到 portal-ext.properties 中:

auth.failure=com.liferay.portal.security.auth.LoginFailure,...LogLoginFailures

该属性存储处理程序列表。您应该保留默认的 LoginFailure 以获得存储每个用户上次失败的登录尝试的默认行为。

如果您确实想要记录所有登录尝试,您可以在您的auth.pipeline.post属性中添加一个Authenticator门户扩展属性:

public LogLoginFailures implements AuthFailure {

public int authenticateByEmailAddress(long companyId, String emailAddress,
String password, Map<String, String[]> headerMap,
Map<String, String[]> parameterMap) throws AuthException {
MyLoginLogUtil.logSuccesss(emailAddress);
return SUCCESS;
}

// Implement the two other authenticate... methods the same way

}

这将记录成功的登录尝试。

您也可以在 auth.pipeline.pre 属性中添加一个身份验证器作为第一个处理程序,但这无法区分登录失败和成功。

关于liferay - 记录 Liferay 登录尝试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34086160/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com