第 2 章 特定于发行版本的更改
2.1. 服务器配置更改
2.1.1. 新主机名选项
默认支持主机名 v2 选项,因为旧的 hostname 选项已弃用。
所需迁移列表:
旧选项 | 新选项 |
---|---|
|
|
|
|
|
|
正如您所见,为主机名和
后缀。选项 hostname
-admin 选项删除了 *-
urlhostname
接受主机名和 URL,但 hostname-admin
现在只接受完整的 URL。
另外,无法单独设置 路径
或端口
。您可以通过为主机名和
选项提供完整的 URL 来达到此目的。
hostname
-admin
如果端口不是 URL 的一部分,它将从传入的请求标头动态解析。
HTTPS 不再强制执行,除非它是主机名和
URL 的一部分。如果没有指定,则使用协议(hostname
-adminhttp/https
)会从传入请求动态解析。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 没有在组路径中被转义的斜杠。因此,名为 top
的 group/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
选项运行 start
或 start-dev
命令时,如果导入材料中存在,则会导入它。之前的行为是首先创建 master 域,然后其导入跳过。
2.1.5. 优化的
启动选项上的额外验证
优化的
启动选项现在需要首先构建优化的服务器镜像。这可以通过先运行 kc.sh|bat build
或通过任何其他服务器命令( 如启动
、导出
、导入
)来实现。
2.1.6. 在运行时指定 缓存
选项
选项
, 和 cache
-stackcache-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