在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中使用。
在使用带Liberty的WAR时,如何从应用程序存档中指定组到角色映射?
(遗憾的是,要求我更改服务器内的任何内容,或与任何类型的控制台或图形管理界面进行交互的解决方案对我来说都不可用)
答案 0 :(得分:3)
这篇文章有点陈旧,但这是我对其他任何可能正在努力解决这个问题的人的发现。
使用最新版本的WebSphere Liberty(目前为@ 8.5.5.6),您可以将应用程序绑定文件(ibm-application-bnd.xml)放入Web应用程序的META-INF文件夹中,Liberty将解析绑定文件,就好像它被打包在一个EAR中。我不确定这是否是一个记录在案的功能。
答案 1 :(得分:2)
另一个更新 - 在2016年6月发布(Liberty修订包16.0.0.2)中,我们现在支持组名称映射的默认角色。如果您对组名称与角色名称相同感到满意,那么您不需要提供绑定通知,映射将自动进行。
总结一下,Liberty现在有三种方法可以将组映射到角色: