org.keycloak.models.RealmModel.getGroupById()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(5.5k)|赞(0)|评价(0)|浏览(101)

本文整理了Java中org.keycloak.models.RealmModel.getGroupById方法的一些代码示例,展示了RealmModel.getGroupById的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RealmModel.getGroupById方法的具体详情如下:
包路径:org.keycloak.models.RealmModel
类名称:RealmModel
方法名:getGroupById

RealmModel.getGroupById介绍

暂无

代码示例

代码示例来源:origin: org.keycloak/keycloak-model-jpa

private Set<GroupModel> getGroupModels(Collection<String> groupIds) {
  Set<GroupModel> groups = new LinkedHashSet<>();
  for (String id : groupIds) {
    groups.add(realm.getGroupById(id));
  }
  return groups;
}

代码示例来源:origin: org.keycloak/keycloak-model-jpa

@Override
public Set<GroupModel> getSubGroups() {
  TypedQuery<String> query = em.createNamedQuery("getGroupIdsByParent", String.class);
  query.setParameter("parent", group);
  List<String> ids = query.getResultList();
  Set<GroupModel> set = new HashSet<>();
  for (String id : ids) {
    GroupModel subGroup = realm.getGroupById(id);
    if (subGroup == null) continue;
    set.add(subGroup);
  }
  return set;
}

代码示例来源:origin: org.keycloak/keycloak-model-jpa

@Override
public Set<GroupModel> getGroups(RealmModel realm, String userId) {
  Set<GroupModel> set = new HashSet<>();
  TypedQuery<FederatedUserGroupMembershipEntity> query = em.createNamedQuery("feduserGroupMembership", FederatedUserGroupMembershipEntity.class);
  query.setParameter("userId", userId);
  List<FederatedUserGroupMembershipEntity> results = query.getResultList();
  if (results.size() == 0) return set;
  for (FederatedUserGroupMembershipEntity entity : results) {
    GroupModel group = realm.getGroupById(entity.getGroupId());
    set.add(group);
  }
  return set;
}

代码示例来源:origin: org.keycloak/keycloak-invalidation-cache-infinispan

@Override
public GroupModel getGroupById(String id) {
  if (updated != null) return updated.getGroupById(id);
  return cacheSession.getGroupById(id, this);
}

代码示例来源:origin: org.keycloak/keycloak-model-mongo

@Override
public Set<GroupModel> getGroups() {
  if (user.getGroupIds() == null || user.getGroupIds().size() == 0) return Collections.EMPTY_SET;
  Set<GroupModel> groups = new HashSet<>();
  for (String id : user.getGroupIds()) {
    groups.add(realm.getGroupById(id));
  }
  return groups;
}

代码示例来源:origin: org.keycloak/keycloak-model-mongo

@Override
public GroupModel getParent() {
  if (group.getParentId() == null) return null;
  return realm.getGroupById(group.getParentId());
}

代码示例来源:origin: org.keycloak/keycloak-model-jpa

@Override
public GroupModel getParent() {
  GroupEntity parent = group.getParent();
  if (parent == null) return null;
  return realm.getGroupById(parent.getId());
}

代码示例来源:origin: org.keycloak/keycloak-authz-policy-common

group = authorization.getRealm().getGroupById(definition.getId());

代码示例来源:origin: org.keycloak/keycloak-authz-policy-common

@Override
public void onExport(Policy policy, PolicyRepresentation representation, AuthorizationProvider authorization) {
  Map<String, String> config = new HashMap<>();
  GroupPolicyRepresentation groupPolicy = toRepresentation(policy, authorization);
  Set<GroupPolicyRepresentation.GroupDefinition> groups = groupPolicy.getGroups();
  for (GroupPolicyRepresentation.GroupDefinition definition: groups) {
    GroupModel group = authorization.getRealm().getGroupById(definition.getId());
    definition.setId(null);
    definition.setPath(ModelToRepresentation.buildGroupPath(group));
  }
  try {
    String groupsClaim = groupPolicy.getGroupsClaim();
    if (groupsClaim != null) {
      config.put("groupsClaim", groupsClaim);
    }
    config.put("groups", JsonSerialization.writeValueAsString(groups));
  } catch (IOException cause) {
    throw new RuntimeException("Failed to export group policy [" + policy.getName() + "]", cause);
  }
  representation.setConfig(config);
}

代码示例来源:origin: org.keycloak/keycloak-model-mongo

@Override
public Set<GroupModel> getSubGroups() {
  DBObject query = new QueryBuilder()
      .and("realmId").is(realm.getId())
      .and("parentId").is(getId())
      .get();
  List<MongoGroupEntity> groups = getMongoStore().loadEntities(MongoGroupEntity.class, query, invocationContext);
  Set<GroupModel> subGroups = new HashSet<>();
  if (groups == null) return subGroups;
  for (MongoGroupEntity group : groups) {
    subGroups.add(realm.getGroupById(group.getId()));
  }
  return subGroups;
}

代码示例来源:origin: org.keycloak/keycloak-authz-policy-common

representation.addGroup(ModelToRepresentation.buildGroupPath(realm.getGroupById(definition.getId())));

代码示例来源:origin: org.keycloak/keycloak-authz-policy-common

@Override
public void evaluate(Evaluation evaluation) {
  AuthorizationProvider authorizationProvider = evaluation.getAuthorizationProvider();
  GroupPolicyRepresentation policy = representationFunction.apply(evaluation.getPolicy(), authorizationProvider);
  RealmModel realm = authorizationProvider.getRealm();
  Attributes.Entry groupsClaim = evaluation.getContext().getIdentity().getAttributes().getValue(policy.getGroupsClaim());
  if (groupsClaim == null || groupsClaim.isEmpty()) {
    List<String> userGroups = evaluation.getRealm().getUserGroups(evaluation.getContext().getIdentity().getId());
    groupsClaim = new Entry(policy.getGroupsClaim(), userGroups);
  }
  for (GroupPolicyRepresentation.GroupDefinition definition : policy.getGroups()) {
    GroupModel allowedGroup = realm.getGroupById(definition.getId());
    for (int i = 0; i < groupsClaim.size(); i++) {
      String group = groupsClaim.asString(i);
      if (group.indexOf('/') != -1) {
        String allowedGroupPath = buildGroupPath(allowedGroup);
        if (group.equals(allowedGroupPath) || (definition.isExtendChildren() && group.startsWith(allowedGroupPath))) {
          evaluation.grant();
          return;
        }
      }
      // in case the group from the claim does not represent a path, we just check an exact name match
      if (group.equals(allowedGroup.getName())) {
        evaluation.grant();
        return;
      }
    }
  }
}

相关文章

微信公众号

最新文章

更多

RealmModel类方法