Class JPAResourceStore

java.lang.Object
org.keycloak.authorization.jpa.store.JPAResourceStore
All Implemented Interfaces:
ResourceStore

public class JPAResourceStore extends Object implements ResourceStore
Author:
Pedro Igor
  • Constructor Details

    • JPAResourceStore

      public JPAResourceStore(jakarta.persistence.EntityManager entityManager, AuthorizationProvider provider)
  • Method Details

    • create

      public Resource create(ResourceServer resourceServer, String id, String name, String owner)
      Description copied from interface: ResourceStore

      Creates a Resource instance backed by this persistent storage implementation.

      Specified by:
      create in interface ResourceStore
      Parameters:
      resourceServer - the resource server to where the given resource belongs to. Cannot be null.
      id - the id of this resource. It must be unique. Will be randomly generated if null.
      name - the name of this resource. It must be unique.
      owner - the owner of this resource or null if the resource server is the owner
      Returns:
      an instance backed by the underlying storage implementation
    • delete

      public void delete(RealmModel realm, String id)
      Description copied from interface: ResourceStore
      Removes a Resource instance, with the given id from the persistent storage.
      Specified by:
      delete in interface ResourceStore
      Parameters:
      realm - the realm. Cannot be null.
      id - the identifier of an existing resource instance
    • findById

      public Resource findById(RealmModel realm, ResourceServer resourceServer, String id)
      Description copied from interface: ResourceStore
      Returns a Resource instance based on its identifier.
      Specified by:
      findById in interface ResourceStore
      Parameters:
      realm - the realm. Cannot be null.
      resourceServer - the resource server. Ignored if null
      id - the identifier of an existing resource instance
      Returns:
      the resource instance with the given identifier or null if no instance was found
    • findByOwner

      public void findByOwner(RealmModel realm, ResourceServer resourceServer, String ownerId, Consumer<Resource> consumer)
      Specified by:
      findByOwner in interface ResourceStore
    • findByResourceServer

      public List<Resource> findByResourceServer(ResourceServer resourceServer)
      Description copied from interface: ResourceStore
      Finds all Resource instances associated with a given resource server.
      Specified by:
      findByResourceServer in interface ResourceStore
      Parameters:
      resourceServer - the identifier of the resource server. Cannot be null.
      Returns:
      a list with all resources associated with the given resource server
    • find

      public List<Resource> find(RealmModel realm, ResourceServer resourceServer, Map<Resource.FilterOption,String[]> attributes, Integer firstResult, Integer maxResults)
      Description copied from interface: ResourceStore
      Finds all Resource instances associated with a given resource server.
      Specified by:
      find in interface ResourceStore
      Parameters:
      realm - the realm. Cannot be null.
      resourceServer - the identifier of the resource server. Ignored if null.
      attributes - a map holding the attributes that will be used as a filter; possible filter options are given by Resource.FilterOption
      firstResult - first result to return. Ignored if negative or null.
      maxResults - maximum number of results to return. Ignored if negative or null.
      Returns:
      a list with all resources associated with the given resource server
    • findByScopes

      public void findByScopes(ResourceServer resourceServer, Set<Scope> scopes, Consumer<Resource> consumer)
      Specified by:
      findByScopes in interface ResourceStore
    • findByName

      public Resource findByName(ResourceServer resourceServer, String name, String ownerId)
      Description copied from interface: ResourceStore
      Find a Resource by its name where the owner is the given ownerId.
      Specified by:
      findByName in interface ResourceStore
      Parameters:
      resourceServer - the identifier of the resource server. Cannot be null.
      name - the name of the resource
      ownerId - the owner id
      Returns:
      a resource with the given name
    • findByType

      public void findByType(ResourceServer resourceServer, String type, Consumer<Resource> consumer)
      Description copied from interface: ResourceStore
      Finds all Resource from ResourceServer with the given type.
      Specified by:
      findByType in interface ResourceStore
      Parameters:
      resourceServer - the resource server id. Cannot be null.
      type - the type of the resource
      consumer - the result consumer
    • findByType

      public void findByType(ResourceServer resourceServer, String type, String owner, Consumer<Resource> consumer)
      Description copied from interface: ResourceStore
      Finds all Resource with the given type.
      Specified by:
      findByType in interface ResourceStore
      Parameters:
      resourceServer - the resource server id. Cannot be null
      type - the type of the resource
      owner - the resource owner or null for any resource with a given type
      consumer - the result consumer
    • findByTypeInstance

      public void findByTypeInstance(ResourceServer resourceServer, String type, Consumer<Resource> consumer)
      Description copied from interface: ResourceStore
      Finds all Resource by type where client represented by the resourceServer is not the owner
      Specified by:
      findByTypeInstance in interface ResourceStore
      Parameters:
      resourceServer - the resourceServer. Cannot be null.
      type - searched type
      consumer - a consumer that will be fed with the resulting resources