我需要运行一个java应用程序(不是applet或JNLP,而是JRE中的完整应用程序)并且需要一些限制:
文件系统 - 该应用只能访问1个文件夹来阅读&写(这将是应用程序引用的固定路径,如/)
端口 - 该应用只能访问多个本地端口。 (例如,只能访问端口8080/3306)
有办法做到这一点吗?我搜索过Java Security&政策但没有接近解决方案。
我正在考虑编写一个容器来运行这个应用程序或更改/覆盖类(如果是OpenJDK)。这可以吗?
这是一个我们即将开始的开源项目,从明智的StackExchange社区中获得一些好的建议。
问候
答案 0 :(得分:2)
首先,最基本的,运行java应用程序的用户具有应用程序执行其工作所需的最低权限。
其次,设置java SecurityManager
并配置它。
答案 1 :(得分:1)
SJuan76在这里有正确的答案。 SecurityManager 是限制java应用程序可以访问的文件/目录的适当方法。 This tutorial可能是设置它的好指南。
您可以限制java app监听的端口。但是限制端口确实需要配置操作系统级别的防火墙。