【问题标题】:WSO2 Identity Server 5.0.0 boolean claimsWSO2 Identity Server 5.0.0 布尔声明
【发布时间】:2017-02-11 21:49:09
【问题描述】:

我正在尝试向我的用户配置文件添加自定义布尔声明。我在http://wso2.org/oidc/claim 方言中添加了声明,然后在http://wso2.org/claims 中添加了必要的映射,并默认支持声明。我想在该自定义声明中存储布尔值(真/假)。打开某个身份后,我会看到该声明的空白值。如果我存储值“true”并保存配置文件,我会收到一个带有勾号的复选框。如果我然后去更新一些具有相同身份的其他字段并单击保存,布尔值将被保留,我仍然看到带有勾号的复选框(代表“真”值)。然后我决定取消选中我的自定义布尔声明的值,以便存储声明的“假”值。但是一旦我点击“保存”按钮,我就不再看到空复选框(我希望它代表“假”值)。相反,我看到一个期望值的空白字段。此时,如果我尝试调用用户信息端点,我不会检索提到的自定义声明。为了接收它的错误值,我需要转到提到的身份,明确输入“false”并保存身份。之后,我收到该声明的“假”值。然后,如果由于某种原因有人跟踪我并更新身份的另一部分,我的自定义声明的“错误”值将丢失,我陷入以前的情况,我无法获得自定义声明的值,因为它没有定义。
我正在使用“帐户锁定”声明,我无法通过此声明观察到此类行为。我想是因为它是一种特殊的,因为它被身份管理使用。
有没有办法解决这种情况?目前,我提出了“必需”声明,您无法为该声明保存具有空值的身份(通过 IS 管理控制台)。
对于 WSO2 IS 5.0.0 中的布尔声明,这是预期的行为吗?

【问题讨论】:

    标签: wso2 wso2is wso2carbon


    【解决方案1】:

    这是预期的行为。声明可以具有任何值(数字、布尔值、文本等),因此 Identity Server 无法识别声明的数据类型。然而,布尔值的处理方式略有不同。最初,当您添加声明时,它将显示为文本框,因为 IS 无法确定数据类型。一旦您保存了用户配置文件,添加了“真”或“假”作为文本框的值(这是第一次),那么 IS 内部会将此声明识别为布尔值。从那时起,它将在 UI 中显示为复选框。

    【讨论】:

    • 感谢您的回复。一旦我输入“假”值并保存它,它确实显示为一个空复选框。但是,如果我编辑身份的其他字段并再次保存,复选框就会消失,并且声明留空。如果输入的值为 true,则情况并非如此。
    • 是的,这是 IS 5.0.0 中的一个错误。然而,当涉及到 IS 5.1.0 和 5.2.0 时,这是固定的。如果您需要在 IS 5.0.0 上修复此问题,我可以帮助您修补特定组件。
    • 如果您能详细说明如何修补正确的组件以克服上述行为,那就太好了。顺便说一句,我使用的是安装了 SP1 的 IS 5.0.0。你认为如果我安装 Service Pack 2,问题会得到解决,还是我需要在我的系统上应用特定的其他补丁?提前致谢。
    • 如果您有 Identity Server 的 Service Pack 2 (WSO2-IS-5.0.0-SP02),即 patch1546,那么您可以应用它,问题就解决了。
    • 感谢您提供的信息。会试试看。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-29
    • 2016-01-28
    • 1970-01-01
    • 2016-04-23
    • 1970-01-01
    • 2016-02-28
    • 1970-01-01
    相关资源
    最近更新 更多