我有一个WildFly 23,想通过一个可以运行BeanShell脚本的WAR文件部署一个服务。权限应该非常有限。如果数据和脚本可以传递给服务,从而可以执行简单的计算,这就足够了。
示例:我将客户列表作为POJO和返回名字列表。然后WebService应该向我提供名字列表。
脚本不应运行Runtime.exec、建立到URL的连接或以其他方式危害安全。无休止运行的脚本将被挂起的任务阈值终止。我所需要的只是在客户端上设置一个SecurityManager,然后我只授予它一些权限。然而,如果我理解正确的话,这个选项目前已经被弃用,并且从WildFly 26开始被删除。如何告诉新的安全管理器子系统我的web服务只有几个权限?
谢谢!
您应该在您的war的META-INF文件夹中创建并添加一个permissions.xml文件,如下所示:
<permissions xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/permissions_7.xsd"
version="7">
<permission>
<class-name>java.io.FilePermission</class-name>
<name>*</name>
<actions>read,write</actions>
</permission>
并在安全管理器打开的情况下启动服务器(我认为标志是--secmanager(