使用Keyloak脚本映射器聚合声明中的角色属性

本文介绍了使用Keyloak脚本映射器聚合声明中的角色属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!,我们有一个Keyloak脚本映射器来将角色属性添加到ID令牌。目标是聚合角色属性中的可用值。映射器如下所示:,添加了currentClaims[k] = v的部分以聚合角色中的可用值,因此,如果两个角色包含相同属性,则它们的值也会聚合。,例如,如果我们有一个用户的角色a和b的属性foo的值分别为1和2,则我们预计ID令牌将包含值为1和2的foo的声明。,但在当前代码中,currentClaims变量似乎在多次调用函数时保持状态。每次检查ID令牌时,都会将更多2的值添加到令牌中,从而导致类似[1, 2, 2, ..., 2]的foo声明,每次检索令牌时都会添加越来越多的2。我尝试将整个调用包装在一个函数中,以便可能在调用之间丢弃状态,但无济于事。结果如下:,为什么在多个呼叫期间保留状态?有没有办法也聚合角色属性的值?,未知。也许是和纳肖恩有关的事。,要不保持聚合值,请在addToList函数中检查它是否已经存在(解决方法):,并通过保持某种状态进行聚合:,这会将new-claims字段中的所有索赔放入JWT。,/编辑:,注意:addToList中的此JavaScript/Java互操作存在问题(如更改角色的实际属性.)。最好使用纯JavaScript进行连接,然后再转换回Java:,这篇关于使用Keyloak脚本映射器聚合声明中的角色属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,
返回顶部
跳到底部

Copyright 2011-2024 南京追名网络科技有限公司 苏ICP备2023031119号-6 乌徒帮 All Rights Reserved Powered by Z-BlogPHP Theme By open开发

请先 登录 再评论,若不是会员请先 注册