Java 使用war时IBM Liberty(WLP)中的组到角色映射

Java 使用war时IBM Liberty(WLP)中的组到角色映射,java,websphere,websphere-8,websphere-liberty,Java,Websphere,Websphere 8,Websphere Liberty,不幸的是,在JavaEE中,一些服务器需要特定于供应商的组到角色映射来进行安全配置。对于这些服务器,这种映射是必需的,即使实际上没有什么可映射的 不幸的是,IBMLiberty就是这样一个服务器。它需要一个名为IBMApplicationBND.xml的文件中的映射,该文件应该放在EAR的META-INF/文件夹中。例如: 更不幸的是,这个文件似乎只能从EAR使用 在使用与Liberty的战争时,如何从应用程序归档中指定组到角色的映射 (那些需要我更改服务器内部任何内容,或与任何类型的控制台

不幸的是,在JavaEE中,一些服务器需要特定于供应商的组到角色映射来进行安全配置。对于这些服务器,这种映射是必需的,即使实际上没有什么可映射的

不幸的是,IBMLiberty就是这样一个服务器。它需要一个名为
IBMApplicationBND.xml
的文件中的映射,该文件应该放在EAR的META-INF/文件夹中。例如:


更不幸的是,这个文件似乎只能从EAR使用

在使用与Liberty的战争时,如何从应用程序归档中指定组到角色的映射


(那些需要我更改服务器内部任何内容,或与任何类型的控制台或图形管理界面交互的解决方案对我来说都是不可用的)

这篇文章有点过时了,但以下是我的发现,供其他可能正与此问题作斗争的人参考


使用最新版本的WebSphere Liberty(当前为@8.5.5.6),您可以将应用程序绑定文件(ibm application bnd.xml)放入web应用程序的META-INF文件夹中,Liberty将解析绑定文件,就像它被打包在EAR中一样。我不确定这是否是记录在案的功能。

另一个更新-在2016年6月的交付(Liberty fix pack 16.0.0.2)中,我们现在支持默认角色到组名的映射。如果您希望组名与角色名相同,则不需要提供绑定信息,映射将自动进行

综上所述,Liberty中现在有3种将组映射到角色的方法:

  • .ear文件中ibm-application-bnd.xml中的映射信息
  • server.xml文件中应用程序配置中的映射信息
  • 通过不提供任何映射,允许组名默认为角色名
    你已经回答了你的问题。有两种方法,一种是通过EAR中的bnd文件,另一种是通过server.xml中的映射。你为什么不能使用其中一个?若你们对应用程序有控制权,那个么你们就使用绑定文件,若你们对服务器有控制权,那个么你们就使用服务器方式。看起来您希望在应用程序内部完全控制该映射,而不使用任何用户注册表。你想解决的真正问题是什么?@Gas“你为什么不能使用其中一个呢?”-我想回答这个问题;为什么在使用EAR时,映射可以在存档中定义,但在使用WAR时,这(似乎)是不可能的?@Gas“您试图解决的真正问题是什么?”-我没有商业案例意义上的“真正问题”。我正在测试JASPIC实现是否符合规范。请参阅@Gas“您为什么不能使用其中一个的原因?”JASPIC测试在一系列服务器上运行测试。为执行的每个集成测试修改已安装的服务器是很麻烦的,这会影响我们的
    server.xml
    。使用EAR也很麻烦,因为所有其他服务器的所有测试都是基于战争的。把这场战争包装在耳朵里,仅仅为了自由测试是不太好的,问题是为什么需要这样做?所有服务器要么不要求组到角色映射,要么在war中允许映射文件。为什么Liberty在这里有所不同?我认为你提出了一些好的观点,所以我提出了两个关于增强这一点的要求。我不能保证我们什么时候或者是否会交付它们,但是你可以登录并订阅。根据上面科尔比的回答,实际上是4种方式;)或者你可以说第一种方法有两种变体,一种用于.ear,另一种用于.war。在这种情况下,“特殊主题”是如何工作的?我可以在没有server.xml或EAR的情况下将其放在just-WAR文件中吗?在IBM WebSphere Liberty/18.0.0.3上尝试过这一点