授予对单个班级的权限

用户371320:

我正在使用Tomcat 6上的安全策略。我已经成功授予了我整个Web应用程序的权限,但只想授予某些特定类的权限。但是,当我尝试此操作时,我的doPrivileged块收到一个AccessControlException。

因为我已经成功授予了一个更通用的代码库,所以我回到了该代码库,并在添加每个其他子目录时进行了测试。通过这种方式,我能够进行的最具体的拨款是:

授予codeBase“文件:$ {catalina.home} / webapps / ROOT / WEB-INF /-” {...}

如果我添加“ classes /”,如下所示:

授予codeBase“文件:$ {catalina.home} / webapps / ROOT / WEB-INF / classes /-” {...}

然后我继续看到AccessControlException。我要允许的类位于classes目录下。该Webapp部署为.war文件,并由Tomcat解压缩。

我在这里做错了什么?我打算遵循Tomcat随附的catalina.policy中提供的示例。

布雷特·凯尔(Brett Kail):

使用Java默认策略文件格式分配权限的最佳粒度是每个代码源(即,每个JAR或每个类目录)。解决方法是,您可以在WEB-INF / lib中将每个特权级别不同的类拆分为自己的JAR,然后为该JAR授予特定权限。

可以使用自定义的ClassLoader为每个defineClass创建唯一的ProtectionDomain。ProtectionDomain可以静态地授予每个类权限,也可以创建专门的ProtectionDomain以允许自定义策略动态授予每个类权限。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章