Tomcat REALM在某些情况下不进行身份验证

时间:2013-03-12 14:37:52

标签: tomcat authentication tomcat7 jdbcrealm

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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

相关问题