在您的帮助下,我已成功解决了我问here的问题。我为Web应用程序开发了一个自定义Tomcat身份验证器,目前身份验证器及其配置文件位于%CATALINA_HOME%\lib\
目录中。遗憾的是,身份验证器配置文件几乎与Web应用程序的配置文件(位于%CATALINA_HOME%\webapps\myapp
中)的副本相同,而且配置文件显然都共享相同的数据库连接设置。这是不方便的,因为共享唯一的配置文件将是最好的。
我认为有两种方法可以解决这个问题:
webapps
存在的myapp
目录,然后读取应用程序配置文件(从当前情况开始,myapp\WEB-INF\web.xml
配置正确)。当然,遗憾的是这需要重启Tomcat。如果有可能,我想更喜欢第二种解决方案,但我不确定。如果它们都存在,哪种方式更好?或者是否有任何其他甚至更好的解决方案,而不是将 Web应用程序特定的身份验证器放入%CATALINA_HOME\lib%
?
提前致谢并抱歉我的英语。
答案 0 :(得分:0)
您有一个代码重复的案例。
我建议重构代码,以便Tomcat拥有所有必要的代码来进行身份验证,然后重构您的应用程序以仅使用Tomcat身份验证代码。
如果您的应用程序无法使用Tomcat身份验证,您至少可以在Tomcat中移动公共代码(包括其配置文件),然后使用公共代码。
答案 1 :(得分:0)
啊,这一切都容易多了!主要思想是通过(JDBCRealm) context.getRealm()
中的authenticate(...)
对象获取连接字符串。这足以解决我的问题。