我正在使用Clojail来沙箱化我的应用程序。
我想在我的应用程序中处理Excel(xlsx)文件。
该代码涉及使用clojure.excel
,最终尝试使用Java的createTempFile
API。
由于安全问题,我遇到了异常。
Caused by: java.lang.SecurityException: Unable to create temporary file
at java.io.File.createTempFile(File.java:2018)
at java.io.File.createTempFile(File.java:2070)
at org.apache.xmlbeans.impl.common.XBeanDebug.log(XBeanDebug.java:97)
这就是我目前创建沙盒的方式。
(:require [clojail.jvm :refer [permissions domain context]]
[clojail.core :refer [sandbox eagerly-consume]])
(let [context (-> (permissions (FilePermission. file-path "read"))
domain
context)
namespace-form (namespace-declaration)
sb (sandbox modified-secure-tester-without-def
:init namespace-form
:namespace (namespace-symbol namespace-form)
:context context
:transform eagerly-consume
:timeout (* 5 60 1000) ;; 5 minute timeout
:max-defs 500)]
(log/log-env :info "build-sandbox")
sb)
如何修改我的权限和上下文以允许createTempFile执行?
有人可以帮我提一些建议或类似的解决方案吗?