【发布时间】:2011-05-19 16:57:19
【问题描述】:
在 Tomcat 中使用 JAAS JDBCRealms 时,我通常在 server.xml 中定义领域。但是现在我正在寻找一个更简单的解决方案,我在部署应用程序时不必配置 Tomcat 容器。
如果可能,我想将所有 JAAS 配置保留在 web.xml 中,并且只定义每个应用程序/webapp 的领域。
一个线程提到他通过在 webapp 的 META-INF/context.xml 中定义领域来做到这一点。但我无法让它工作 (Why is Tomcat manager using my LoginModule?)。
请帮我在 .war 中找到正确的位置来定义一个 org.apache.catalina.realm.JDBCRealm,然后用于该 webapp。
【问题讨论】:
-
也许我找到了解决方案:仅当 $CATALINA_BASE/conf/[enginename]/[hostname]/ 中的应用程序的上下文文件不存在时,在 /META-INF 的单个文件中/context.xml 在应用程序文件中。如果 Web 应用程序被打包为 WAR,那么 /META-INF/context.xml 将被复制到 $CATALINA_BASE/conf/[enginename]/[hostname]/ 并重命名以匹配应用程序的上下文路径。此文件一旦存在,如果将具有较新 /META-INF/context.xml 的新 WAR 放置在主机的 appBase 中,它将不会被替换。来自tomcat.apache.org/tomcat-6.0-doc/config/context.html