如何在Resin中使用SecurityManager策略文件提供JSP权限?

时间:2009-08-25 08:18:26

标签: java jsp resin securitymanager

我们正在尝试将ResManager与Resin 3.1.9一起使用,并遇到以下问题:CodeSource.getLocation()为已编译的JSP返回null。

这意味着我们不能在策略文件的grant子句中使用特定的代码库,例如:

grant codeBase "file:/path_to_resin/runtime/work/-" {
OR grant codeBase "file:/path_to_resin/webapp/JSP-source/-" {
  //...some jsp-specific permissions
};

相反,我们必须使用通用授权条款:

grant  {
  //..some jsp-specific permissions. Unfortunately, these will be applied
  //to all code!!!
};

有没有办法让JSP拥有合适的CodeSource?我们想限制第三方库的权限,但是赋予我们自己的JSP权限。如果我们不能在策略文件中指定JSP,我们可能无法做到这一点,或者你怎么想?

编辑:我们按原样部署JSP,因此不要重新编译它们。这可能与问题有关。

1 个答案:

答案 0 :(得分:0)

我通过Resin邮件列表得到了答案,并认为我也在这里发布了:

Resin 3似乎有一个错误,现在有an issue for it。基本上我们尝试的方式应该工作,或者至少它适用于Resin 2.所以,这应该工作:

grant codeBase "file:/path_to_resin/runtime/work/-" {
  //...some jsp-specific permissions
};

Resin的开发负责人说:“好吧,安全经理会杀死性能,所以我们通常不鼓励它。”我们可能不得不重新考虑是否合理使用SecurityManager。有关该主题的更多讨论,请参阅我的其他问题 Should I use Security Manager in Java web applications?