【发布时间】: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