【问题标题】:Tomcat REALM doesn't authenticate in some casesTomcat REALM 在某些情况下不进行身份验证
【发布时间】:2013-02-28 03:24:34
【问题描述】:

我正在使用 Tomcat 7 和 Realm 来使用 JDBC 进行身份验证。我扩展了 DataSourceRealm 以使用我们自己的实现。我的问题是,在某些情况下,Tomcat REALM 似乎没有调用 DataSourceRealm 中的任何方法,但从一开始就未能通过身份验证。这通常发生在用户通过身份验证时更改数据库中的密码时。在使用户无效并尝试再次登录后,无论我尝试使用什么密码,tomcat 都不会让我进入。只有重启 tomcat 才能解决这个问题。

在DataSourceRealm 类(扩展类)中放置断点 我看到通常tomcat 会调用authenticate 方法,但在特殊情况下,TC 根本不会调用DataSourceRealm 中的任何东西。为什么是这样?有某种缓存吗?对此没有任何记录。

还有一件事:多次将用户名字符更改为大写将起作用。所以我可以以管理员身份登录,但不能以管理员身份登录(使用 aDmin 它将按预期调用 DataSourceRealm),这让我确信用户以某种方式被缓存。

【问题讨论】:

  • 请检查catalina 文件。我认为发生了异常。之后让我知道例外情况。

标签: tomcat authentication tomcat7 jdbcrealm


【解决方案1】:

如果您在使用基本身份验证时遇到此问题,则 浏览器 会缓存凭据并尝试再次使用它们。

如果你验证过一次,更改凭据,注销并尝试再次登录,浏览器不会再次询问凭据,将无法通过。

尝试关闭浏览器并再次打开页面,它应该再次询问登录名和密码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-15
    • 2019-11-08
    • 2012-03-22
    • 1970-01-01
    • 2021-11-18
    • 2014-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多