Lai*_*son 155 security authorization glassfish java-ee jacc
我正在写一个JACC提供者.
一路上,这意味着实施一个PolicyConfiguration.
的PolicyConfiguration是负责从应用服务器,接受配置信息,如哪些权限累积到哪些角色.这样,Policy以后可以在递交有关当前用户的信息以及他正在尝试做的事情时做出授权决定.
但是,它不是PolicyConfiguration维护角色及其权限之间映射的(合理的)合同的一部分Principals,而是分配给这些角色.
通常 - 总是,实际上 - 应用程序服务器容纳此映射.例如,Glassfish上,你通过影响供给像这样的东西映射sun-web.xml和sun-ejb-jar.xml等您的Java EE模块.(这些供应商特定的文件负责说,例如,superusers是一个将被分配应用程序角色的组admins.)
我想重用这些文件提供的功能,我希望尽可能广泛的应用程序服务器.
这是 - 完全随意 - IBM对此事的看法,这似乎证实了我怀疑我想要做的事情基本上是不可能的.(对于我的情况,更多的弹药,这个特定的Java EE合同不值得它打印的纸张.)
我的问题:我如何获得这个主要角色映射信息 - 对于初学者 - Glassfish和JBoss来自PolicyConfiguration?如果有一种我不知道的标准方法,那我就是耳朵.
简短的回答是:没有标准的方法来做到这一点。
尽管 Glassfish 和 JBoss 支持主体到角色映射,但 JACC 并不假设所有容器都支持,因此它将保留这些映射的责任委托给 JACC 提供程序实现。从文档(参见:PolicyConfiguration.addToRole方法):
策略提供者的工作是确保添加到角色的所有权限都授予“映射到角色”的主体。
换句话说,您需要在每个容器的 JACC 提供程序中自行实现这一点。例如,对于 JBoss,您可以使用AbstractRolesMappingProvider.