【问题标题】:Group to role mapping in IBM Liberty (WLP) when using war使用战争时 IBM Liberty (WLP) 中的组到角色映射
【发布时间】:2015-06-14 00:25:00
【问题描述】:

不幸的是,在 Java EE 中,一些服务器需要供应商特定的组来进行安全配置的角色映射。对于这些服务器,即使确实没有要映射的内容,这种映射也是强制性的。

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

<?xml version="1.0" encoding="UTF-8"?>
<application-bnd xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-application-bnd_1_2.xsd"
    xmlns="http://websphere.ibm.com/xml/ns/javaee"
    version="1.2">

    <security-role name="architect"> 
        <group name="architect" />
    </security-role>

</application-bnd>

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

在将 WAR 与 Liberty 结合使用时,如何从应用程序归档中指定组到角色的映射?

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

【问题讨论】:

  • 您已经回答了您的问题。有两种方法,一种是通过EAR 中的bnd 文件,第二种是通过server.xml 中的映射。为什么您不能使用其中之一?如果您可以控制应用程序,那么您可以使用绑定文件,如果您可以控制服务器 - 您可以使用服务器方式。看起来您希望完全控制应用程序内部的映射,并且根本不使用任何用户注册表。您要解决的真正问题是什么?
  • @Gas “有什么理由不能使用其中之一吗?” - 我想回复这个问题;为什么在使用 EAR 时可以在存档中定义映射,但是在使用 WAR 时,这(似乎)是不可能的?
  • @Gas “你想要解决的真正问题是什么?” - 在商业案例的意义上,我没有“真正的问题”。我正在测试 JASPIC 实现是否符合规范。见github.com/javaee-samples/javaee7-samples/tree/master/jaspic
  • @Gas “有什么理由不能使用其中之一吗?” - JASPIC 测试在一系列服务器上运行测试。为每个执行的集成测试修改已安装的服务器很麻烦,统治我们的server.xml。使用 EAR 也很麻烦,因为所有其他服务器的所有测试都是基于 WAR 的。将要测试的 WAR 包装在 EAR 中仅用于 Liberty 测试并不是很好,问题是为什么需要这样做?所有服务器要么不要求组到角色的映射,要么允许在战争中使用映射文件。为什么 Liberty 在这里与众不同?
  • 我认为你提出了很好的观点,所以我提出了两个改进请求。我不能保证我们何时或是否会交付它们,但您可以登录并订阅。 ibm.com/developerworks/rfe/…ibm.com/developerworks/rfe/…

标签: java websphere websphere-8 websphere-liberty


【解决方案1】:

另一个更新 - 在 2016 年 6 月交付(Liberty 修订包 16.0.0.2)中,我们现在支持默认角色到组名称的映射。如果您很高兴您的组名与角色名相同,则无需提供绑定信息,映射将自动发生。

总结一下,现在 Liberty 中有 3 种方法可以将组映射到角色:

  1. .ear 文件中 ibm-application-bnd.xml 中的映射信息
  2. server.xml 文件中应用程序配置中的映射信息
  3. 通过不提供任何映射允许组名默认为角色名

【讨论】:

  • 根据 Colby 上面的回答,实际上有 4 种方式;)或者您可以说第一种方式有两种变体,一种用于 .ear,一种用于 .war。
  • 在这种情况下“特殊主题”是如何工作的?我可以把它放在没有 server.xml 或 EAR 的 WAR 文件中吗?
【解决方案2】:

这篇文章有点过时了,但这是我为其他可能遇到此问题的人提供的发现。

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

【讨论】:

  • 对我有用,在 IBM WebSphere Liberty/18.0.0.3 上试用过
猜你喜欢
  • 1970-01-01
  • 2015-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-25
  • 2017-07-27
相关资源
最近更新 更多