我们正在尝试将SecurityManager与Resin3.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,所以不要重新编译它们。这可能与这个问题有关。
发布于 2009-08-30 09:08:13
我通过Resin邮件列表得到了一个答案,我想我也把它贴在这里:
看起来Resin3有一个bug,现在有了an issue for it。基本上,我们尝试的方法应该是有效的,或者至少在树脂2上有效。所以,这应该是有效的:
grant codeBase "file:/path_to_resin/runtime/work/-" {
//...some jsp-specific permissions
};Resin的开发负责人说:“嗯,安全管理器会扼杀性能,所以我们通常不鼓励这样做。”我们可能不得不重新考虑使用SecurityManager是否合理。有关该主题的更多讨论,请参阅我的其他问题。
https://stackoverflow.com/questions/1326770
复制相似问题