问题标签 [context.xml]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
225 浏览

java - 如何保护 context.xml 中的敏感信息?

我刚刚开始将所有数据库凭据存储在我的 WARcontext.xml文件中,并通过 JNDI 加载它们。这样,我的应用程序可以在多个区域重用相同的凭据,并且我可以使用 JNDI 来检索它们(而不是将凭据散布在我的代码库中)。

但现在我在想:如果攻击者进入安装了我的 Tomcat 服务器的机器怎么办?他们可以直接进入我的 webapps/MyApp 展开目录,找到并打开该context.xml目录,瞧——他们现在可以访问我的数据库了!

那么在这里引入安全性的下一步是什么?有没有办法将我的所有凭据保存在某个密钥库中,并从内部引用它们的标签context.xml?我仍然想使用context.xml,以便我的 JDBC 代码可以通过 JNDI 访问凭据。如果是这样,如何context.xml以安全的方式访问它们?这里处理安全的正常方式是什么?提前致谢!

0 投票
2 回答
17414 浏览

java - 如何在 context.xml 中存储字符串值

我想将连接 URL 存储在我的 Tomcat 应用程序的 JNDI 绑定中。由于 Tomcatcontext.xml用于 JNDI 资源定义,我需要找出在context.xml.

我这样做的原因是我可以为不同的环境定义不同的字符串,并通过 JNDI 加载它们。

通常,我会看到这样的条目:

真的就这么简单吗:

如果是这样,我实际上在哪里存储字符串值?!?!如果它不正确,那么我存储的正确方法是什么,例如“ amqp:5272//blah.example.com&param1=4”,context.xml这样我就可以像这样查找它:

提前致谢!

0 投票
1 回答
311 浏览

java - 如何使用 JNDI 处理可变数量的上下文参数

我有一个 Web 应用程序需要能够在运行时从 JNDI 中读取 N 个键(字符串):

这将在 Tomcat 上运行,因此我需要能够将这些键作为Context/Parameter元素存储在内部context.xml,如下所示:

问题是,我将此应用程序部署到的每个环境(DEV、QA、DEMO、LIVE 等)都有不同数量的密钥。例如,DEV 可能只有 1 个键(即只有 1 个Context/Parameter元素)。LIVE 可能有 20 个。

我如何在 Java 代码中适应这一点?代码不能跨环境更改,所以我需要一种方法来通过 JNDI 加载任意数量的键,使用相同的 Java 代码,只是Context/Parameters内部不同context.xml。有任何想法吗?提前致谢!

0 投票
1 回答
1420 浏览

java - tomcat 7 context.xml eclipse classnotfound

我在 Eclipse 中创建了一个 Web 应用程序,我将其部署到 Tomcat 7(通过 Eclipse)。

我使用 NTLM 身份验证(使用 waffle 1.5)登录到应用程序,我想为我正在构建的应用程序提供必要的 jars(而不是在 Tomcat 7 lib 目录中)。

要开始使用华夫饼,我将以下内容放入 META-INF/context.xml

<Valve className="waffle.apache.NegotiateAuthenticator" />

<Realm className="waffle.apache.WindowsRealm" />

当我从 Eclipse 启动应用程序时,我得到ClassNotFoundException一个waffle.apache.NegotiateAuthenticator

我在 eclipse 的部署程序集设置以及 Order 和 Export 设置中都有相关的 jar。似乎没有任何帮助。

更新:当我将文件放在 Tomcat 的 lib 目录中时,我没有问题并且可以使用身份验证。但是,我想将 jar 文件保留在 Web 应用程序中。

确保 context.xml 可以访问正确的 jar 需要什么?

0 投票
1 回答
396 浏览

java - JSP 应用程序 - 使用 Context.xml 环境标记的全局变量列表

是否可以通过 Context.xml 文件拥有一个字符串列表变量?例如,我目前正在我的 context.xml 文件中执行此操作:

我将其读入分词器,并用逗号分隔。无论如何,我可以直接将其存储为数组或列表吗?

0 投票
2 回答
5530 浏览

java - tomcat 没有选择 context.xml,但它被连接到 CATALINA_HOME> conf>Catalina>localhost

我的 context.xml(在 META_INF 中)文件夹如下所示:

问题是,当我通过 tomcat 管理器部署我的应用程序战争时,context.xml 被复制到 CATALINA_HOME> conf>Catalina>localhost 文件夹。但是,它仍然以某种方式从默认上下文部署,即 app_war_name。

早些时候,它甚至没有被复制到 localhost 文件夹,我删除了默认的 context.xml 表单 tomcat 6.0>conf 文件夹。在那之后,文件至少被复制了。但是,部署不是从显式 context.xml 进行的。

我的 server.xml 主机条目如下所示:

0 投票
1 回答
5580 浏览

postgresql - 检测数据库类型时出错:无法创建 PoolableConnectionFactory(致命:没有 pg_hba.conf

我正在使用 pgAdmin3 并使用 pkg 安装 postgreSQL 和 pg。我正在尝试通过 tomcat 连接到 postgreSQL。当我从我的 tomcat /bin 目录执行 ./startup.sh 时,日志文件显示此错误:

原因:org.springframework.beans.factory.BeanCreationException:在类路径资源[applicationContext-coreDataServices.xml]中定义名称为“metaModelDAO”的bean创建错误:调用init方法失败;嵌套异常是 org.apache.cayenne.CayenneRuntimeException:[v.3.0.1.LB Nov 16 2011 05:24:11] 检测数据库类型时出错:无法创建 PoolableConnectionFactory(致命:主机“10.0.0.197 没有 pg_hba.conf 条目", 用户 "abc_writer", 数据库 "abc", SSL 关闭)

这是我在 context.xml 中的内容:

这是我的 pg_hba.config 的样子:

当我从 postgresql/bin 打开 postmaster 时,它显示:

它说我在 pg_hba.conf 中没有条目的原因是否是因为我没有权限如果是这样我如何获得权限?如果这不是问题,我是否有设置错误?

--- 谢谢,布赖恩

0 投票
3 回答
5137 浏览

java - 从 context.xml 加载 Bean 属性值

目前我们正在从属性文件中加载我们的 JDBC 源值,如下所示:

这个段。与基于类路径的 app.properties 文件一起工作并摆脱 app.properties。

我们想从 context.xml 加载这些值(放置在META-INF或中$CATALINA_HOME/conf/context.xml)。它将帮助我们在 prod/staging 服务器上加载正确的值。

将不胜感激任何帮助或替代方法/建议。(如果已经回答了类似的问题,请分享链接)谢谢!

0 投票
1 回答
8727 浏览

java - Context.xml 中的相对路径

有没有办法在 web 应用程序的 context.xml 中设置docBase属性的相对路径,所以它位于 tomcat 服务器实例的 appBase 目录之外?

我希望能够在计算机之间共享上下文配置,并使应用程序位于目录中,而不是战争文件中。这样我就可以将类直接编译到该目录中(在我的项目开发目录中),并让 tomcat 使用这些类,而无需任何复制/打包。

我正在使用 tomcat 8.0.0-RC5。我的目录布局是:

我试过了

但这没有用。/web-content 之前的整个路径似乎被忽略了。日志说:

上下文容器的Tomcat 8 文档说:

您可以为此目录或 WAR 文件指定绝对路径名,或者指定相对于拥有主机的 appBase 目录的路径名。

这里的 relative 是指 appBase 的严格子目录(不允许 ..)吗?

设置绝对路径没有问题。配置

有效,但它特定于我的计算机。所以我不能再不修改就共享上下文配置。

我可以在 tomcat 服务器的 appBase 目录中创建一个符号链接,并让它指向我的应用程序的 web-content 文件夹。这会起作用,但我在 linux 和 windows 机器上会有不同的配置(符号链接)。

0 投票
1 回答
405 浏览

tomcat - Tomcat 虚拟主机和上下文配置

我在完成某事时遇到问题。我目前拥有一个域,并且我已将 DNS 设置为在浏览器中请求时在本地计算机上访问 8080 上的 Tomcat。到目前为止一切都很好。因此,当它访问 Tomcat 时,我会得到标准的“Cat”页面,我可以在其中访问管理器、主机管理器等......

我的目标是设置一个虚拟主机,将对我的域的请求路由到位于 Tomcat_Home\webapp 文件夹中的特定 webapp。所以我这样配置我的 server.xml:

dwnewton.war 已部署到 webapps 并按预期解压。但无论我做什么,我都无法让 Tomcat 将我的请求路由到 Tomcat_Home\webapp 目录中的特定 webapp。

  • 我尝试将 context.xml 放在特定应用程序的 Meta_Inf 中
  • 我尝试在 conf 目录中配置 context.xml
  • 我尝试将 [appname].xml 放在 conf\localhost 目录中

我越来越沮丧了。也许我错误地指定了 appBase 或 path 或 docBase。或者,也许我把它们放在了错误的位置。