gpt4 book ai didi

java - 如何在错误页面上显示 JAAS LoginException

转载 作者:搜寻专家 更新时间:2023-10-31 20:08:44 24 4
gpt4 key购买 nike

我在 Tomcat 8.x Web 服务器上使用 JAAS 和基于表单的 Web 身份验证。用户在尝试登录时被拒绝访问的可能原因有很多:

  1. 无效的用户名
  2. 密码无效
  3. 在数据库中没有帐户
  4. 数据库中的帐户未激活
  5. 数据库中的帐户没有所需的角色
  6. 等....

在我的 LoginModule 中,我检查所有这些条件以及更多条件,如果不允许用户访问 Web 应用程序,则抛出 LoginException。JAAS 似乎捕获了抛出的 LoginException,将其丢弃,并将用户重定向到 web.xml 中指定的错误页面。

我花了很多时间在谷歌上搜索,试图找到一种方法来获取登录异常的原因,但一无所获。

有没有办法让错误页面找出抛出LoginException的原因?

最佳答案

  1. invalid username
  2. invalid password

你不应该区分这两种情况。这样做会向攻击者泄露信息,一旦他找到有效的用户名就会减少他的搜索空间。您应该只报告“无效的用户名/密码组合”或类似内容。

  1. doesn't have account in database

这与 (1) 相同。

  1. account in database is not active

这又不应该像上面那样区分。

  1. account in database doesn't have required roles

这不是登录失败。当用户执行需要缺少角色的操作时,这会变成访问拒绝,或者导致用户界面不显示缺少角色的操作。

我采用的将适当的 JAAS 错误传递给应用程序的解决方案是将它们添加为 Subject 的公共(public)凭据。

关于java - 如何在错误页面上显示 JAAS LoginException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47579168/

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