使用启用了安全管理器的 Tomcat 时,在类路径中找不到属性文件
Posted
技术标签:
【中文标题】使用启用了安全管理器的 Tomcat 时,在类路径中找不到属性文件【英文标题】:Properties file not found in classpath when using Tomcat with security manager enabled 【发布时间】:2013-07-24 19:20:09 【问题描述】:我有一个我的 Web 应用程序需要的属性,但它在打包时不可用。所以我把它放在 TOMCAT_HOME/lib 中,应用程序发现它没有问题。当我在启用安全管理器的情况下运行 Tomcat 时,永远找不到该文件。我已授予阅读权限,但仍未找到。我没有收到任何安全错误消息,只是文件丢失。
在启用安全管理器的情况下运行 Tomcat 时,类路径是否不同?是不是更受限制?
【问题讨论】:
您是如何尝试加载此属性文件的?代码示例会有所帮助。 我正在使用 apache 配置文件“PropertiesConfiguration.java”。它需要一个参数,该参数是要读取的属性文件的名称。它在类路径中找到此文件。 PropertiesConfiguration config = new PropertiesConfiguration("myfile.properties"); 【参考方案1】:我发现了问题。我的代码使用的是:
Thread.currentThread().getContextClassLoader().getResourceAsStream(inputFile);
我需要授予 RuntimePermission 以获取类加载器。
permission java.lang.RuntimePermission "getClassloader";
【讨论】:
以上是关于使用启用了安全管理器的 Tomcat 时,在类路径中找不到属性文件的主要内容,如果未能解决你的问题,请参考以下文章
[轻微]WEB服务器启用了OPTIONS方法/如何禁止DELETE,PUT,OPTIONS等协议访问应用程序/tomcat下禁用不安全的http方法