Java SecurityManager:对策略文件的良好介绍

时间:2011-02-08 14:51:57

标签: java securitymanager policyfiles

您能否建议对标准Java SecurityManager的非平凡策略文件进行一个很好的介绍?

是否有超出Java网站提供的示例?或者有人描述如何保护运行大量不同Web应用程序的Tomcat?

[编辑]我的用例是一个可以运行由三种类型的用户编写的脚本的应用程序:1。应用程序开发人员,2。应用程序管理员和3.最终用户。

第1组的用户需要能够访问几乎所有资源(=不需要特殊的SM)。

第2组可以信任,但我们希望保护他们免受愚蠢的错误(比如致电System.exit)。

组#3不可信任。他们通常只编写小脚本。

当我运行脚本时,我知道它来自哪里。策略文件是否有助于我的用例,还是我需要编写自己的SecurityManager?

1 个答案:

答案 0 :(得分:0)

您是否真的查看了SecurityManager上可用的方法?

  • 如何(SecurityManager)可能回答特定用户是否可以执行特定操作?
    • 无法知道用户正在尝试的内容(操作)
    • 无法知道用户尝试操作的数据(事物)。

警察文件仅适用于需要一些安全约束的资源,这些约束可以用短文本形式表示,并且在jvm运行时不会更改。如下所示:

  • 只能从hardrive / path / to / file。
  • 读取
  • 只能读取系统属性X
  • 只能在端口上打开套接字......

您的q实际上并没有说出您希望测试的对象以及他们可能执行的操作。如果您正在尝试保护页面(想想网址),那么您可能需要考虑类似Spring Security的内容,它可以让您说出以下内容:

  • for url“/ crash-computer”只允许角色“讨厌”的用户执行此操作
  • 只有角色“admin”的用户才能访问“/ admin / *”等

您需要添加自己的自定义逻辑,以便只创建创建X的用户或超级用户可以更新X.