Keycloak 获取登录用户的角色\范围

Keycloak 获取登录用户的角色\范围,keycloak,Keycloak,是否有方法检索登录用户的角色\范围 我正在使用JavaScript适配器和用户配置文件函数,注意没有范围属性 有没有另一个终点我可以代替?我浏览了管理RESTAPI文档,没有发现任何明显的东西 谢谢角色不在范围属性中。在任何运行keydove的服务器中,转到/auth/js/keydove.js获取JavaScript适配器。在其中,您将看到一些代码,如: kc.hasRealmRole = function (role) { var access = kc.realmAccess;

是否有方法检索登录用户的角色\范围

我正在使用JavaScript适配器和用户配置文件函数,注意没有范围属性

有没有另一个终点我可以代替?我浏览了管理RESTAPI文档,没有发现任何明显的东西


谢谢

角色不在范围属性中。在任何运行keydove的服务器中,转到
/auth/js/keydove.js
获取JavaScript适配器。在其中,您将看到一些代码,如:

kc.hasRealmRole = function (role) {
    var access = kc.realmAccess;
    return !!access && access.roles.indexOf(role) >= 0;
}
因此,您可以访问
kc.realacess.roles
以查找登录用户所处的角色。用户必须已通过身份验证,此功能才能正常工作

编辑

我承认我正在寻找一个答案。但是,JavaScript版本至少在一定程度上反映了Java版本,以实现相同的功能:

Principal principal = securityContext.getUserPrincipal();
KeycloakPrincipal<KeycloakSecurityContext> kp = (KeycloakPrincipal<KeycloakSecurityContext>) principal;

AccessToken accessToken = kp.getKeycloakSecurityContext().getToken();
List<String> roleNames = accessToken.getRealmAccess().getRoles();
Principal=securityContext.getUserPrincipal();
keydeproprincipal kp=(keydeprincipal)主体;
AccessToken AccessToken=kp.GetKeyDopperSecurityContext().getToken();
List roleNames=accessToken.GetRealMacAccess().getRoles();

如您所见,有一个RealMacAccess对象,它包含Java和JavaScript中的角色名称。Java代码。以代码的相似性为基础编写代码可能不是100%的保证,但它确实指向了试图保持概念相似的KeyClope开发人员。

谢谢,这有文档记录吗?我还没有遇到任何关于如何做到这一点的官方指南,我担心如果不是官方API的一部分,它可能会发生变化