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