47 AuthorizationProvider authorizationProvider = evaluation.getAuthorizationProvider();
48 GroupPolicyRepresentation policy =
representationFunction.apply(evaluation.getPolicy(), authorizationProvider);
49 RealmModel realm = authorizationProvider.getRealm();
50 Attributes.Entry groupsClaim = evaluation.getContext().getIdentity().getAttributes().getValue(policy.getGroupsClaim());
52 if (groupsClaim == null || groupsClaim.isEmpty()) {
53 List<String> userGroups = evaluation.getRealm().getUserGroups(evaluation.getContext().getIdentity().getId());
54 groupsClaim =
new Entry(policy.getGroupsClaim(), userGroups);
57 for (GroupPolicyRepresentation.GroupDefinition definition : policy.getGroups()) {
58 GroupModel allowedGroup = realm.getGroupById(definition.getId());
60 for (
int i = 0; i < groupsClaim.size(); i++) {
61 String group = groupsClaim.asString(i);
63 if (group.indexOf(
'/') != -1) {
64 String allowedGroupPath = buildGroupPath(allowedGroup);
65 if (group.equals(allowedGroupPath) || (definition.isExtendChildren() && group.startsWith(allowedGroupPath))) {
72 if (group.equals(allowedGroup.getName())) {
final BiFunction< Policy, AuthorizationProvider, GroupPolicyRepresentation > representationFunction
Definition: GroupPolicyProvider.java:39