我需要检索与用户关联的角色,但我正在使用wildfly,我已经在wildfly和我的Java项目中安装了所有jar keycloak,但是我可以通过Java适配器检索此列表吗?
其他选项是通过get,post,put等调用其他api,就像任何api一样.但我的第一个选择是Adapters.
我通过适配器进行身份验证,但我找不到任何方法来检索角色,客户端,领域等.
我错了或适配器只是认证?
有人有一个很好的例子吗?
解决方法:
在keycloak.json中设置选项use-resource-role-mappings:true
你应该能够在servlet中获得如下角色
KeycloakPrincipal principal = (KeycloakPrincipal)request.getUserPrincipal();
principal.getKeycloakSecurityContext().getToken().getResourceAccess("testclient").getRoles();
你也可以从这样的上下文中获取KeycloakPrincipal
Subject subject = (Subject) PolicyContext.getContext("javax.security.auth.Subject.container");
Set<KeycloakPrincipal> principals = subject.getPrincipals(KeycloakPrincipal.class);
然后获得角色