mirror of
https://github.com/keycloak/keycloak.git
synced 2025-12-20 14:00:09 -06:00
Workflow database queries not filtering based on the realm
Closes #44858 Signed-off-by: Pedro Igor <pigor.craveiro@gmail.com>
This commit is contained in:
@@ -31,6 +31,7 @@ import jakarta.persistence.criteria.Subquery;
|
|||||||
import org.keycloak.common.util.MultivaluedHashMap;
|
import org.keycloak.common.util.MultivaluedHashMap;
|
||||||
import org.keycloak.connections.jpa.JpaConnectionProvider;
|
import org.keycloak.connections.jpa.JpaConnectionProvider;
|
||||||
import org.keycloak.models.KeycloakSession;
|
import org.keycloak.models.KeycloakSession;
|
||||||
|
import org.keycloak.models.RealmModel;
|
||||||
import org.keycloak.models.jpa.entities.UserEntity;
|
import org.keycloak.models.jpa.entities.UserEntity;
|
||||||
import org.keycloak.models.workflow.conditions.expression.BooleanConditionParser;
|
import org.keycloak.models.workflow.conditions.expression.BooleanConditionParser;
|
||||||
import org.keycloak.models.workflow.conditions.expression.EvaluatorUtils;
|
import org.keycloak.models.workflow.conditions.expression.EvaluatorUtils;
|
||||||
@@ -67,6 +68,8 @@ public class UserResourceTypeWorkflowProvider implements ResourceTypeSelector {
|
|||||||
cb.equal(stateRoot.get("workflowId"), workflow.getId())
|
cb.equal(stateRoot.get("workflowId"), workflow.getId())
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
RealmModel realm = session.getContext().getRealm();
|
||||||
|
predicates.add(cb.equal(userRoot.get("realmId"), realm.getId()));
|
||||||
Predicate notExistsPredicate = cb.not(cb.exists(subquery));
|
Predicate notExistsPredicate = cb.not(cb.exists(subquery));
|
||||||
predicates.add(notExistsPredicate);
|
predicates.add(notExistsPredicate);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user