2.8. 对 JBoss EAP 以前的版本的更改
在 JBoss EAP 7 中添加 Undertow 服务器后,对 SAML 单点登录的配置方式进行了一些更改。在 JBoss EAP 7 上设置 IDP 和 SP 时,以及迁移在先前版本的 JBoss EAP 上运行的 IDP 和 SP 时,您必须考虑这些更改。
-
不再使用 valves,其参数现在使用
context-param进行配置。 - 依赖项声明已更改。
-
SAML 验证器现在要求在
web.xml 中配置 FORM身份验证。 - 动态帐户选择器配置已更改。
2.8.1. valve 和 Valve 配置更改 复制链接链接已复制到粘贴板!
在 JBoss EAP 7 中,不再使用 valves,但 Undertow 处理程序提供了类似的功能。最终,您不再需要在 jboss-web.xml 中添加 valve 声明。有关此变化以及它对迁移的总体影响的详细信息,请参阅 JBoss EAP 迁移指南的迁移 https://access.redhat.com/documentation/zh-cn/red_hat_jboss_enterprise_application_platform/7.4/html-single/migration_guide/#migrate_custom_application_valves 自定义应用程序变量部分。
jboss-web.xml 中仍然配置其他配置,如指定安全域。
由于不再使用 valves,现在在 web.xml 中使用 <context-param> 来配置以下项目。
配置供应商
<context-param>
<param-name>org.picketlink.federation.saml.CONFIG_PROVIDER</param-name>
<param-value>MyConfigurationProvider</param-value>
</context-param>
Audit Helper
<context-param>
<param-name>org.picketlink.federation.saml.AUDIT_HELPER</param-name>
<param-value>MyAuditHelper</param-value>
</context-param>
配置刷新间隔
<context-param>
<param-name>org.picketlink.federation.saml.REFRESH_CONFIG_TIMER_INTERVAL</param-name>
<param-value>1000</param-value>
</context-param>
字符编码
<context-param>
<param-name>org.picketlink.federation.saml.CHARACTER_ENCODING</param-name>
<param-value>UTF-8</param-value>
</context-param>
将用户主体传递给属性管理器
<context-param>
<param-name>org.picketlink.federation.saml.PASS_USER_PRINCIPAL_TO_ATTRIBUTE_MANAGER</param-name>
<param-value>true</param-value>
</context-param>
为 picketlink.xml 的自定义位置
<context-param>
<param-name>CONFIG_FILE</param-name>
<param-value>/path/to/picketlink.xml</param-value>
</context-param>
2.8.2. 依赖项变化 复制链接链接已复制到粘贴板!
与之前的 JBoss EAP 版本一样,您仍需要使用 jboss-deployment-structure.xml 文件声明正确的依赖项,但现在您将需要在模块 中包含 services="import"。在之前的 JBoss EAP 版本中,您已声明过同样的依赖项,但会声明一个 valve 来安装 SAML 身份验证器和排除 的服务="import"。随着 JBoss EAP 7 中 Undertow 的引入,您现在使用 services="import" 来安装 SAML 身份验证器。
使用 jboss-deployment-structure.xml 进行 Declare 依赖项
<jboss-deployment-structure>
<deployment>
<dependencies>
<module name="org.picketlink" services="import"/>
</dependencies>
</deployment>
</jboss>
2.8.3. 验证器更改 复制链接链接已复制到粘贴板!
SAML 身份验证器扩展了 JBoss EAP 中的 FORM 身份验证器。要启用 SAML 身份验证器,您必须在 web.xml 中为 FORM 。
身份验证 定义 <login-config>
web.xml 文件示例
<web-app>
...
<login-config>
<auth-method>FORM</auth-method>
...
</login-config>
</web-app>
2.8.4. 动态帐户 Chooser 更改 复制链接链接已复制到粘贴板!
在之前的 JBoss EAP 版本中,使用传递到 valve 的参数来配置动态帐户选择器的某些部分。由于 JBoss EAP 7 中不再使用 valves,因此此配置已移到 picket link.xml 中包含的 Provider 元素中。有关这些配置选项的详情,请参阅 配置动态帐户 Chooser 部分。
以前版本的 JBoss EAP 还定义了 org.picketlink.identity.federation.bindings.tomcat.sp.AbstractAccountChooserValve.AccountIDPMapProvider 接口,它在创建自定义 IDPMapProvider 时实施。在 JBoss EAP 7 中,此接口不再存在,现在您必须实施 org.picketlink.identity.federation.web.config.IdentityURLConfigurationProvider 接口。此新界面上的合同相同。