我正在编写一个 JACC
提供程序。
在此过程中,这意味着要实现 PolicyConfiguration
。
PolicyConfiguration
负责接受应用服务器的配置信息,例如哪些权限归属于哪些角色。这样一来,Policy
会在稍后处理 关于当前用户及其尝试执行的操作的信息 时做出授权决策。
然而,维护角色及其权限以及分配给这些角色的 Principals
的映射不是 PolicyConfiguration
(可怕的)合同的一部分。
通常情况下 - 实际上总是如此 - 应用服务器存储此映射关系。例如,在 Glassfish 上,您可以通过为 Java EE 模块提供诸如 sun-web.xml
和 sun-ejb-jar.xml
等内容来影响此映射。 (这些特定于供应商的文件负责说明,例如 superusers
是要分配应用程序角色 admins
的组。)
我希望重用这些文件提供的功能,并且希望为尽可能广泛的应用服务器执行此操作。
以下是IBM对此问题的看法,完全是主观臆断,但似乎证实了我的怀疑:我想做的基本上是不可能的。这更加支持了我认为这份Java EE合同不值一文的论点。
我的问题:如何在Glassfish和JBoss中从PolicyConfiguration
内部获取此主体到角色映射信息?如果有我不知道的标准方法,我非常愿意听取建议。