8.10. 条件流中的条件
如 执行要求 中所述,Condition 执行只能包含在 Conditional 子流中。如果所有条件执行评估为 true,则 Conditional 子流充当 必需。您可以在 Conditional 子流中处理下一个执行。如果 Conditional 子流评估中包含的一些执行为 false,则整个子流被视为 Disabled。
8.10.1. 可用条件 复制链接链接已复制到粘贴板!
condition - 用户角色
此执行能够确定用户是否具有由 User role 字段定义的角色。如果用户具有必要的角色,则执行将被视为 true,并且评估其他执行。管理员必须定义以下字段:
- Alias
- 描述执行的名称,它将显示在身份验证流中。
- 用户角色
-
用户应该执行此流的角色。要指定应用角色,语法为
appname.approle
(如myapp.myrole
)。
condition - 用户配置
- 这会检查是否为用户配置了流中的其他执行。Execution requirements 部分包含 OTP 表单的示例。
condition - 用户属性
这会检查用户是否设置了 required 属性:可选,检查也可以评估组属性。可以对输出进行求值,这意味着用户不应具有属性。User Attributes 部分演示了如何添加自定义属性。您可以提供以下字段:
- Alias
- 描述执行的名称,它将显示在身份验证流中。
- 属性名称
- 要检查的属性的名称。
- 预期属性值
- 属性中的预期值。
- 包含组属性
- 如果为 On,则条件检查是否有任何加入组是否有与配置的名称和值匹配的属性:此选项可能会影响性能
- negate 输出
- 您可以对输出进行求反。换句话说,属性不应存在。
8.10.2. 在条件流中明确拒绝/允许访问 复制链接链接已复制到粘贴板!
您可以允许或拒绝访问条件流中的资源。这两个 验证器
拒绝访问和 允许访问控制
资源访问。
允许访问
- 身份验证程序将始终成功进行身份验证。此验证器不可配置。
拒绝访问
访问将始终被拒绝。您可以定义错误消息,它将显示给用户。您可以提供以下字段:
- Alias
- 描述执行的名称,它将显示在身份验证流中。
- 错误消息
-
错误消息,显示给用户。错误消息可以作为特定消息提供,或者作为属性提供,以便将其与本地化结合使用。(例如"您没有角色 'admin'。", my-property-deny in messages 属性)留空,针对定义为属性
access-denied
的默认消息。
下面是一个示例,如何拒绝对没有 role1
的所有用户的访问,并显示由属性 deny-role1
定义的错误消息。这个示例包括 Condition - 用户角色
和 Deny Access
执行。
浏览器流
condition - 用户角色配置
Deny Access
的配置实际上非常简单。您可以指定一个任意 Alias 和所需信息,如下所示:
最后一个事情是在 login theme messages_en.properties
(用于英语)中定义带有错误消息的属性:
deny-role1 = You do not have required role!
deny-role1 = You do not have required role!