[英]catalina.policy file permission with '#' character
我正在將一個名為foo#bar.war的戰爭文件部署到 tomcat 8.5(一旦部署就會創建一個上下文路徑 /foo/bar),我需要在戰爭中的 jar 中設置權限。 部署后,將在 webapps 下創建以下文件夾: foo#bar並且我嘗試在 catalina.policy 中設置權限,如下所示
grant codeBase "file:${catalina.base}${/}webapps${/}foo#bar${/}WEB-INF${/}lib${/}myjar.jar" {
permission .......
};
但是它不起作用,我在調試時看到的是它正在編碼 # 字符並且無法在文件系統中找到文件夾。 我試過 escaping # 但沒有用。
也試過不解包戰爭並設置權限
grant codeBase "file:${/}foo#bar.war!${/}WEB-INF${/}lib${/}myjar.jar" {
permission .......
};
但與 # 有同樣的問題
有沒有辦法逃脫 # 字符?
file:
是 URL。 因此#
可以編碼為%23
。
我也會使用簡單的 '/' 而不是${/}
。
例如,對於當前的 Tomcat 9.0.x 和 Java 11,我可以使用默認的 Manager web 應用程序執行以下操作:
將webapps/manager
重命名為webapps/a#manager
通過替換編輯conf/catalina.policy
grant codeBase "file:${catalina.base}/webapps/manager/-" {... permission org.apache.catalina.security.DeployXmlPermission "manager";
和
grant codeBase "file:${catalina.base}/webapps/a%23manager/-" {... permission org.apache.catalina.security.DeployXmlPermission "a#manager";
啟動 Apache Tomcat 並啟用安全管理器( catalina start -security
)
訪問http://localhost:8080/a/manager/html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.