gpt4 book ai didi

java - Shiro自定义认证逻辑

转载 作者:行者123 更新时间:2023-11-30 04:13:59 24 4
gpt4 key购买 nike

我对使用 Shiro 进行用户身份验证有以下要求:

  1. 用户名和密码必须与数据库中存储的用户名和密码匹配。如果用户名和密码不匹配,则应显示一条错误消息,指示身份验证失败。
  2. 帐户必须处于 Activity 状态 - 用户通过激活电子邮件激活其帐户。如果用户的帐户未激活,则应显示一条错误消息,表明他们尚未点击激活电子邮件。
  3. 帐户不得过期 - 用户帐户有一个过期日期。如果用户的帐户已过期,则应显示一条错误消息,指示帐户已过期。

注意:有两个数据库用于存储用户信息。其中一个数据库存储身份验证信息(用户名和密码),另一个数据库存储帐户过期时间等信息。

只需在 shiro.ini 中配置 JDBC 领域,我就可以轻松完成第一个要求。

我猜测需要实现一些自定义 Java 逻辑才能完成要求 2 和 3。有关如何实现上述内容的任何提示吗?我需要实现自定义领域吗?

最佳答案

实现此目的的一种方法是创建自定义领域。

我们也有一些关于身份验证的自定义要求。我们通过创建自己的自定义领域实现来实现这一点。我们扩展了 AuthorizingRealm 并重写了 doGetAuthenticationInfo 方法来检查是否可以检查用户的登录情况。您可以将案例 2 和 3 放在那里。

如果您仅在 Web 环境中使用 shiro,您可能会考虑覆盖 Standation authc 过滤器并覆盖 isAccessAllowed 方法,如果用户尚未激活或过期,您可以实现一些自定义重定向。

关于java - Shiro自定义认证逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18885128/

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