第 2 章 迁移更改
2.1. 用户配置文件更改
2.1.1. 默认启用用户配置集
用户配置集功能现在默认启用。declarative-user-profile
功能不再可用,因为假定启用了用户配置文件。因此,User Profile Enabled 交换机已从 Realm Settings 中删除,并由 Unmanaged 属性 替代。从之前的版本迁移时,行为如下:
- 对于用户配置文件 已启用 为 ON 的部署,在升级后,Unmanaged 属性 将设置为 OFF。因此,只允许用户配置集明确支持的用户属性。
-
对于用户配置文件 Enabled 为 OFF 的部署(这也是禁用
declarative-user-profile
功能的部署的默认设置,这是默认设置),在升级后,Unmanaged 属性 将设置为 ON。因此,行为应该与之前版本相同,并禁用了用户配置文件。Attributes 选项卡将保留在管理控制台的用户详细信息部分中。另外,只要特定的自定义主题支持,用户现在可以通过 UI 页面设置任意属性,如注册页面和更新配置文件页面。自定义主题也应在之前正常工作。但是,请考虑更新您的主题以使用 user-profile,并在需要添加自定义属性时删除您的自定义主题。请参阅主题上的后续部分。另外,请考虑将 Unmanaged 属性 切换为 OFF,或只为管理员启用这个开关,以便您可以主要依赖使用受管属性。
有关 Unmanaged 属性 的详细信息,请参阅 用户配置文件 文档。
2.1.2. 默认验证
默认用户配置文件配置包括一组用于基本预定义字段的默认验证。默认情况下,当 declarative-user-profile
功能被禁用时,这些验证不会出现在之前的版本中。如果您因为向后兼容时遇到问题,您可以根据您的需要更改默认验证器。默认验证器如下:
-
用户名
、电子邮件
、firstName
和lastName
属性的最大长度为 255 个字符。这些验证在之前的版本中也间接存在,因为表USER_ENTITY
上的数据库约束对于这些字段的最大长度为 255 个字符。但是,在使用用户存储提供程序时,可能会使用较长的值。 -
username
属性的最短长度为三个字符。用户名默认具有username-prohibited-characters
和up-username-not-idn-homograph
验证器,这些验证器在之前的版本中不存在。有关这些属性的详情 ,请参阅 User Profile 文档中的 Validation 部分。请注意,除非您启用了 realm 切换 Edit username
,否则默认不可编辑用户名。这个更改意味着具有不正确的用户名的现有用户仍应该可以正常工作,且不会强制更新其用户名。但是,将强制新用户在注册或由 admin REST API 创建期间使用正确的用户名。 -
firstName
和lastName
属性具有person-name-prohibited-characters
验证器,它们没有存在于之前的版本中。有关这些属性的详情 ,请参阅 User Profile 文档中的 Validation 部分。请注意,第一个名称和姓氏默认为可编辑,因此已在更新其用户配置集时,已有之前版本中错误的名/最后名名称的用户会被强制进行更新。
2.1.3. 用户属性名称,带有 strange 字符
在以前的版本中,您可以使用属性名称(如 some:attribute
或 some/attribute
)创建用户。用户配置文件特意不允许您在用户配置文件配置中创建具有此类奇数名称的属性。因此,您可能需要为域配置非受管 属性
,并为管理员(最好)或最终用户启用非受管属性(如果需要)。虽然强烈建议避免使用这样的属性名称。
2.1.4. 验证默认启用 Profile 所需的操作
在新域中默认启用 verify-profile
所需的操作。但是,当您从现有版本迁移时,您的现有域将具有与之前相同的 verify-profile
操作状态,这通常意味着在以前的版本中默认禁用。有关此所需操作的详情,请查看 用户配置文件文档。
2.1.5. 对 Freemarker 模板的更改,以根据用户配置集和域呈现页面
在这个发行版本中,以下模板已更新,以便可以根据用户配置集配置设置为 realm 来动态呈现属性:
-
login-update-profile.ftl
-
register.ftl
-
update-email.ftl
这些模板负责渲染更新配置文件(当用户启用 Update Profile 所需的操作时)、注册以及更新电子邮件(当 UPDATE_EMAIL 功能被启用)页面。
如果您使用自定义主题更改这些模板,它们可以正常工作,因为只更新内容。但是,我们建议您了解如何配置 声明性用户配置文件,并可能会避免使用此功能提供的所有功能来更改内置模板。
另外,在此发行版本中还需要删除 declarative-user-profile
功能用来呈现相同流的页面:
-
update-user-profile.ftl
-
register-user-profile.ftl
如果您在上一发行版本中使用 declarative-user-profile
功能,并自定义到上述模板,请相应地更新 login-update-profile.ftl
,并相应地更新 register.ftl
。
2.1.6. 首次通过代理登录时为更新配置集页面新的 Freemarker 模板
在本发行版本中,当用户首次使用 idp-review-user-profile.ftl
模板进行身份验证时,服务器会呈现更新配置集页面。
在以前的版本中,用于在第一个代理登录流期间更新配置集的模板是 login-update-profile.ftl
,在用户向域进行身份验证时用于更新配置集。
通过为每个流使用单独的模板,存在更加明确的区别,因为实际使用模板而不是共享同一模板,并可能引入意外更改和行为,它们应该只影响特定流的页面。
如果您对 login-update-profile.ftl
模板进行了自定义,以便用户在通过代理进行身份验证时更新其配置文件,请确保将您的更改移到新模板。