152             public boolean isUserInGroup(String 
id, String groupId, 
boolean checkParent) {
   154                 UserModel user = getUser(
id, session);
   156                 if (Objects.isNull(user)) {
   160                 RealmModel 
realm = session.getContext().getRealm();
   161                 GroupModel group = KeycloakModelUtils.findGroupByPath(realm, groupId);
   163                 if (Objects.isNull(group)) {
   168                     return RoleUtils.isMember(user.getGroups(), group);
   171                 return user.isMemberOf(group);
   174             private UserModel getUser(String 
id, KeycloakSession session) {
   175                 RealmModel realm = session.getContext().getRealm();
   176                 UserModel user = session.users().getUserById(
id, realm);
   178                 if (Objects.isNull(user)) {
   179                     user = session.users().getUserByUsername(
id, realm);
   181                     if (Objects.isNull(user)) {
   182                         user = session.users().getUserByEmail(
id, realm);
   190             public boolean isUserInRealmRole(String 
id, String roleName) {
   192                 UserModel user = getUser(
id, session);
   194                 if (Objects.isNull(user)) {
   198                 Set<RoleModel> roleMappings = user.getRoleMappings().stream()
   199                         .filter(role -> !role.isClientRole())
   200                         .collect(Collectors.toSet());
   202                 return RoleUtils.hasRole(roleMappings, session.getContext().getRealm().getRole(roleName));
   206             public boolean isUserInClientRole(String 
id, String clientId, String roleName) {
   209                 UserModel user = getUser(
id, session);
   211                 if (Objects.isNull(user)) {
   215                 Set<RoleModel> roleMappings = user.getRoleMappings().stream()
   216                         .filter(role -> role.isClientRole() && ClientModel.class.cast(role.getContainer()).getClientId().equals(clientId))
   217                         .collect(Collectors.toSet());
   219                 if (roleMappings.isEmpty()) {
   223                 RoleModel role = realm.getClientById(ClientModel.class.cast(roleMappings.iterator().next().getContainer()).getId()).getRole(roleName);
   225                 if (Objects.isNull(role)) {
   229                 return RoleUtils.hasRole(roleMappings, role);
   233             public boolean isGroupInRole(String 
id, String role) {
   236                 GroupModel group = KeycloakModelUtils.findGroupByPath(realm, 
id);
   238                 return RoleUtils.hasRoleFromGroup(group, realm.getRole(role), 
false);
   242             public List<String> getUserRealmRoles(String 
id) {
   244                         .filter(role -> !role.isClientRole())
   246                         .collect(Collectors.toList());
   250             public List<String> getUserClientRoles(String 
id, String clientId) {
   252                         .filter(role -> role.isClientRole())
   254                         .collect(Collectors.toList());
   258             public List<String> getUserGroups(String 
id) {
   261                         .collect(Collectors.toList());
   265             public Map<String, List<String>> getUserAttributes(String 
id) {
 KeycloakContext getContext()
 
static void buildGroupPath(StringBuilder sb, GroupModel group)
Definition: ModelToRepresentation.java:53
 
final Realm realm
Definition: DefaultEvaluation.java:57
 
KeycloakSession getKeycloakSession()
Definition: AuthorizationProvider.java:165
 
final AuthorizationProvider authorizationProvider
Definition: DefaultEvaluation.java:55