当前,我正在为编程语言(pl)创建一个游乐场。 在操场上输入的代码将在服务器上远程执行。
pl在Java VM中运行,并在docker容器中执行。 由于您可以在pl中读写文件,因此我需要从执行代码的Java应用程序中删除这些权限。
我正在这样执行Java应用程序:
java -cp path/to/app.jar "app.package.main" -x "place code here"
如何从Java应用程序中删除读写权限?
答案 0 :(得分:1)
您需要提供一个自定义的Security Manager配置作为参数:
java -Djava.security.manager
但是:这并不意味着程序可以工作,因为如果禁止某些操作,则
抛出AccessControlException
,程序将崩溃,或者至少(最可能)行为不同。
请参阅本教程:https://docs.oracle.com/javase/tutorial/security/tour2/step2.html
更好的解决方案可能是获取代码并对其进行更改以满足您的需要(当然,仅在许可允许的情况下)。