0

在您的帮助下,我成功地解决了我在这里提出的问题。我为 Web 应用程序开发了一个自定义的 Tomcat 身份验证器,目前该身份验证器及其配置文件位于该%CATALINA_HOME%\lib\目录中。%CATALINA_HOME%\webapps\myapp不幸的是,验证器配置文件几乎与为其开发验证器的 Web 应用程序的配置文件(位于 这很不方便,因为共享唯一的配置文件是最好的。

我认为可能有两种方法可以解决这个问题:

  1. 在Tomcat启动时以某种方式找到存在的webapps目录myapp,然后读取应用程序配置文件(从当前情况开始,并且myapp\WEB-INF\web.xml配置正确)。当然,不幸的是,这需要重新启动 Tomcat。
  2. 可能有一种方法可以将表单身份验证器放入相应的 Web 应用程序目录中,以便能够直接读取共享配置文件。也许这可能会消除 Tomcat 重新启动并允许简单的重新部署。

如果可能的话,我更喜欢第二种解决方案,但我不确定。如果两者都存在,哪种方式更好?或者是否有任何其他甚至更好的解决方案不将特定于 Web 应用程序的身份验证器放入其中%CATALINA_HOME\lib%

在此先感谢并为我的英语感到抱歉。

4

2 回答 2

0

你有一个代码重复的案例。

我建议重构代码,以便 Tomcat 拥有对其身份验证所需的所有代码,然后重构您的应用程序以仅使用 Tomcat 身份验证代码。

如果您的应用程序无法使用 Tomcat 身份验证,您至少可以将公共代码(包括其配置文件)移到 Tomcat 中,然后使用公共代码。

于 2010-09-19T08:17:14.213 回答
0

啊,这一切都容易多了!主要思想只是(JDBCRealm) context.getRealm()通过authenticate(...). 这足以解决我的问题。

于 2010-09-24T06:25:25.267 回答