Search in sources :

Example 6 with ResourceEntity

use of org.keycloak.authorization.jpa.entities.ResourceEntity in project keycloak by keycloak.

the class JPAResourceStore method findByType.

@Override
public void findByType(String type, String owner, String resourceServerId, Consumer<Resource> consumer) {
    TypedQuery<ResourceEntity> query;
    if (owner != null) {
        query = entityManager.createNamedQuery("findResourceIdByType", ResourceEntity.class);
    } else {
        query = entityManager.createNamedQuery("findResourceIdByTypeNoOwner", ResourceEntity.class);
    }
    query.setFlushMode(FlushModeType.COMMIT);
    query.setParameter("type", type);
    if (owner != null) {
        query.setParameter("ownerId", owner);
    }
    query.setParameter("serverId", resourceServerId);
    StoreFactory storeFactory = provider.getStoreFactory();
    query.getResultList().stream().map(entity -> new ResourceAdapter(entity, entityManager, storeFactory)).forEach(consumer);
}
Also used : ResourceServer(org.keycloak.authorization.model.ResourceServer) CriteriaQuery(javax.persistence.criteria.CriteriaQuery) KeycloakModelUtils(org.keycloak.models.utils.KeycloakModelUtils) StreamsUtil.closing(org.keycloak.utils.StreamsUtil.closing) StoreFactory(org.keycloak.authorization.store.StoreFactory) NoResultException(javax.persistence.NoResultException) FlushModeType(javax.persistence.FlushModeType) EntityManager(javax.persistence.EntityManager) ResourceStore(org.keycloak.authorization.store.ResourceStore) TypedQuery(javax.persistence.TypedQuery) ArrayList(java.util.ArrayList) Consumer(java.util.function.Consumer) PaginationUtils.paginateQuery(org.keycloak.models.jpa.PaginationUtils.paginateQuery) List(java.util.List) Predicate(javax.persistence.criteria.Predicate) ResourceEntity(org.keycloak.authorization.jpa.entities.ResourceEntity) Map(java.util.Map) CriteriaBuilder(javax.persistence.criteria.CriteriaBuilder) AuthorizationProvider(org.keycloak.authorization.AuthorizationProvider) Expression(javax.persistence.criteria.Expression) LinkedList(java.util.LinkedList) Root(javax.persistence.criteria.Root) Resource(org.keycloak.authorization.model.Resource) ResourceEntity(org.keycloak.authorization.jpa.entities.ResourceEntity) StoreFactory(org.keycloak.authorization.store.StoreFactory)

Example 7 with ResourceEntity

use of org.keycloak.authorization.jpa.entities.ResourceEntity in project keycloak by keycloak.

the class JPAResourceStore method findByOwnerFilter.

private void findByOwnerFilter(String ownerId, String resourceServerId, Consumer<Resource> consumer, int firstResult, int maxResult) {
    boolean pagination = firstResult > -1 && maxResult > -1;
    String queryName = pagination ? "findResourceIdByOwnerOrdered" : "findResourceIdByOwner";
    if (resourceServerId == null) {
        queryName = pagination ? "findAnyResourceIdByOwnerOrdered" : "findAnyResourceIdByOwner";
    }
    TypedQuery<ResourceEntity> query = entityManager.createNamedQuery(queryName, ResourceEntity.class);
    query.setFlushMode(FlushModeType.COMMIT);
    query.setParameter("owner", ownerId);
    if (resourceServerId != null) {
        query.setParameter("serverId", resourceServerId);
    }
    if (pagination) {
        query.setFirstResult(firstResult);
        query.setMaxResults(maxResult);
    }
    ResourceStore resourceStore = provider.getStoreFactory().getResourceStore();
    closing(query.getResultStream().map(id -> resourceStore.findById(id.getId(), resourceServerId))).forEach(consumer);
}
Also used : ResourceEntity(org.keycloak.authorization.jpa.entities.ResourceEntity) ResourceStore(org.keycloak.authorization.store.ResourceStore)

Aggregations

ResourceEntity (org.keycloak.authorization.jpa.entities.ResourceEntity)7 ResourceStore (org.keycloak.authorization.store.ResourceStore)5 ArrayList (java.util.ArrayList)4 LinkedList (java.util.LinkedList)4 TypedQuery (javax.persistence.TypedQuery)4 CriteriaBuilder (javax.persistence.criteria.CriteriaBuilder)4 Predicate (javax.persistence.criteria.Predicate)4 Resource (org.keycloak.authorization.model.Resource)4 List (java.util.List)3 Map (java.util.Map)3 Consumer (java.util.function.Consumer)3 EntityManager (javax.persistence.EntityManager)3 FlushModeType (javax.persistence.FlushModeType)3 NoResultException (javax.persistence.NoResultException)3 CriteriaQuery (javax.persistence.criteria.CriteriaQuery)3 Expression (javax.persistence.criteria.Expression)3 Root (javax.persistence.criteria.Root)3 AuthorizationProvider (org.keycloak.authorization.AuthorizationProvider)3 ResourceServer (org.keycloak.authorization.model.ResourceServer)3 StoreFactory (org.keycloak.authorization.store.StoreFactory)3