如何在提供平台以运行不同语言代码的Web应用程序的tomcat中设置Java安全策略[重复]

Posted

技术标签:

【中文标题】如何在提供平台以运行不同语言代码的Web应用程序的tomcat中设置Java安全策略[重复]【英文标题】:How to set java security policy in tomcat of a web application giving platform to run codes of different languages [duplicate] 【发布时间】:2016-11-05 06:33:44 【问题描述】:

在我的网络应用程序中,我提供了运行外部代码的平台,这些代码将存储在特定位置,例如“C:\Users\test”。

我想拒绝System.getProperty("user.home") 的读写权限,并且无法通过代码进行任何 http 连接。如何做到这一点?

我还有一个与之相关的问题,就是我们都知道我们不能拒绝策略文本文件的权限,那么当我们在策略文件中提到permission java.security.AllPermission; 时,谁能告诉我权限是什么?

【问题讨论】:

【参考方案1】:

默认安全策略包含在 Tomcat 配置目录中的catalina.policy 文件中。要应用此文件,您应该使用 -security 选项运行 Tomcat。更多信息在 Tomcat 的Security Manager HOW-TO

permission java.security.AllPermission 授予执行任何操作的权限。它应该只应用于完全受信任的代码,例如系统或 Tomcat 的库。默认catalina.policy就是这种情况。

【讨论】:

请检查我的问题。我在问如何拒绝权限@kgeorgiy .policy files 中没有权限撤销机制。要“拒绝”某些事情,您不应该允许这样做。 在使用权限 java.security.AllPermission 命令时,您能说出授予用户的权限列表吗? 没有所有可能权限的封闭列表。例如,每个文件都有一个单独的FilePermission。甚至AllPermissions 授予的权限 types 列表也取决于 Java 平台的版本,例如URLPermission 仅在 Java 8 中添加。 没有办法做到这一点。您应该将PropertyPermission 授予真正使用的属性。

以上是关于如何在提供平台以运行不同语言代码的Web应用程序的tomcat中设置Java安全策略[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Apache服务器——基于不同端口不同域名搭建的虚拟Web主机

如何封装RESTful Web Service

如何在windows上用C语言实现MQTT协议

C语言

C语言的作用是啥?

如何轻松地在不同平台上运行Spring Cloud微服务,通过示例演示云原生应用程序的真正威力