第 2 章 特定于发行版本的更改


2.1. 服务器配置更改

2.1.1. 新主机名选项

默认支持主机名 v2 选项,因为旧的 hostname 选项已弃用。

所需迁移列表:

旧选项新选项

hostname <hostname&gt;
hostname-url <url>
hostname-path <path>
hostname-port <port>

hostname <hostname/url>

hostname-admin <hostname>
hostname-admin-url <url>

hostname-admin <url>

hostname-strict-backchannel <true/false>

hostname-backchannel-dynamic <true/false>

正如您所见,为主机名和 hostname -admin 选项删除了 *- url 后缀。选项 hostname 接受主机名和 URL,但 hostname-admin 现在只接受完整的 URL。

另外,无法单独设置 路径 或端口。您可以通过为主机名和 hostname -admin 选项提供完整的 URL 来达到此目的。

如果端口不是 URL 的一部分,它将从传入的请求标头动态解析。

HTTPS 不再强制执行,除非它是主机名和 hostname -admin URL 的一部分。如果没有指定,则使用协议(http/https)会从传入请求动态解析。hostname-strict-https 选项已被删除。

删除的选项

hostname-url

hostname-admin-url

hostname-path

hostname-port

hostname-strict-backchannel

hostname-strict-https

2.1.1.1. 例子

简化表示法

# Hostname v1
bin/kc.[sh|bat] start --hostname=mykeycloak.org --https-port=8543 --hostname-path=/auth --hostname-strict-https=true

# Hostname v2
bin/kc.[sh|bat] start --hostname=https://mykeycloak.org:8543/auth

正如您在示例中所看到的那样,现在可以使用单个 hostname 选项指定 URL 的所有部分,这简化了主机名设置过程。请注意,在 hostname-strict-https 选项中不会强制 HTTPS,而是在主机名 URL 中指定它。

Backchannel 设置

# Hostname v1
bin/kc.[sh|bat] start --hostname=mykeycloak.org --hostname-strict-backchannel=true

# Hostname v2
bin/kc.[sh|bat] start --hostname=mykeycloak.org --hostname-backchannel-dynamic=false

请注意,如果相同的 URL 用于后端和前端端点,则行为有变化。在以前的版本中,在主机名 v1 中,回溯通道 URL 从请求标头动态解析。因此,要实现所需的结果,您必须指定 hostname-strict-backchannel=true

对于主机名 v2,后端通道 URL 必须与 frontend URL 相同。要从请求标头动态解析它,您需要设置 hostname-backchannel-dynamic=true,并为 hostname 选项提供完整的 URL。

如需了解更多详细信息和更全面的场景,请参阅配置主机名(v2)。

2.1.2. kcadm 和 kcreg 更改

kcadm 和 kcreg 解析和处理选项和参数是如何改变的。来自使用错误(错误的选项或参数)的错误消息可能与之前的版本稍有不同。另外,使用错误时,退出代码为 2,而不是 1。

2.1.3. 在组路径中转义斜杠

红帽构建的 Keycloak 没有在组路径中被转义的斜杠。因此,名为 topgroup/slash 子组使用完整路径 /top/group/slash,这清楚误导。从这个版本开始,可以启动服务器以在名称中执行这些斜杠的转义:

bin/kc.[sh|bat] start --spi-group-jpa-escape-slashes-in-group-path=true

转义字符是波形符 ~。前面的示例生成路径 /top/group~/slash。转义将最后一个斜杠标记为名称的一部分,而不是层次结构分隔符。

默认情况下禁用转义,因为它代表了行为的更改。建议使用转义功能,但未来版本可能会成为默认设置。

2.1.4. --import-realm 选项可以导入 master 域

在 master 域存在前使用-- import-realm 选项运行 startstart-dev 命令时,如果导入材料中存在,则会导入它。之前的行为是首先创建 master 域,然后其导入跳过。

2.1.5. 优化的 启动选项上的额外验证

优化的 启动选项现在需要首先构建优化的服务器镜像。这可以通过先运行 kc.sh|bat build 或通过任何其他服务器命令( 如启动导出导入)来实现。

2.1.6. 在运行时指定 缓存 选项

选项 cache -stack, 和 cache-config-file 不再是构建选项,它们只能在运行时指定。这消除了执行构建阶段的需要,并因镜像而重建镜像。请注意,在构建阶段不会识别它们,因此您需要将它们从构建阶段删除,并将它们添加到 运行时 阶段。 如果您没有将当前缓存选项添加到 运行时 阶段,红帽构建的 Keycloak 将回退到默认的缓存设置。

2.1.7. 在消耗 HTTP 响应时限制内存用量

在某些情况下,红帽构建的 Keycloak 使用 HTTP 与外部服务器进行通信。为了避免当那些供应商发送太多数据时拒绝服务,Red Hat build Keycloak 现在默认将响应限制为 10 MB。

用户可以通过设置供应商配置选项 spi-connections-http-client-default-max-consumed-response-size 来配置这个限制:

将消耗的响应限制为 1 MB

bin/kc.[sh|bat] --spi-connections-http-client-default-max-consumed-response-size=1000000

2.1.8. kc.sh/bat import placeholder replacement

kc.[sh|bat] import 命令现在启用了占位符替换。在以前的版本中,在启动时只对域导入启用占位符替换。

如果要禁用 import 命令的占位符替换,请添加系统属性 -Dkeycloak.migration.replace-placeholders=false

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.