我们在tomcat 7.0.65上部署了一个.war应用程序。这个应用程序使用一个库,在它的资源目录中有一堆polygon.txt文件。无论何时调用库,它都会在分解的war目录中的jar文件上引发文件权限异常。Tomcat拒绝访问分解的战争目录中的资源文件
这里是错误:
Caused by: java.security.AccessControlException: access denied ("java.io.FilePermission" "/var/lib/tomcat7/webapps/**/WEB-INF/lib/table-service-1.37.jar" "read")
at org.apache.catalina.loader.WebappClassLoaderBase.getResourceAsStream(WebappClassLoaderBase.java:1659) ~[catalina-7.0.65.jar:7.0.65]
at com.**.PropertyGeometryDAO.initialize(PropertyGeometryDAO.java:47) ~[table-service-1.37.jar:?]
在这行代码中引发:
try (InputStream stream = getClass().getClassLoader().getResourceAsStream(fileName))
这里是catalina.policy里文件中定义的权限:
permission java.io.FilePermission "/usr/share/tomcat7/webapps/*", "read";
我们也有单独的.war的部署在同一个tomcat使用相同的库,工作得很好。
如何既specifiying读,WITE接取? https://tomcat.apache.org/tomcat-7.0-doc/security-manager-howto.html#Tomcat_Custom_Permissions – nullpointer