Class UsersResource

java.lang.Object
org.keycloak.services.resources.admin.UsersResource

public class UsersResource extends Object
Base resource for managing users
Version:
$Revision: 1 $
Author:
Bill Burke
  • Field Details

    • realm

      protected final RealmModel realm
    • clientConnection

      protected final ClientConnection clientConnection
    • session

      protected final KeycloakSession session
    • headers

      protected final jakarta.ws.rs.core.HttpHeaders headers
  • Constructor Details

  • Method Details

    • createUser

      @POST @Consumes("application/json") public jakarta.ws.rs.core.Response createUser(UserRepresentation rep)
      Create a new user Username must be unique.
      Parameters:
      rep -
      Returns:
    • user

      @Path("{id}") public UserResource user(@PathParam("id") String id)
      Get representation of the user
      Parameters:
      id - User id
      Returns:
    • getUsers

      @GET @Produces("application/json") public Stream<UserRepresentation> getUsers(@QueryParam("search") String search, @QueryParam("lastName") String last, @QueryParam("firstName") String first, @QueryParam("email") String email, @QueryParam("username") String username, @QueryParam("emailVerified") Boolean emailVerified, @QueryParam("idpAlias") String idpAlias, @QueryParam("idpUserId") String idpUserId, @QueryParam("first") Integer firstResult, @QueryParam("max") Integer maxResults, @QueryParam("enabled") Boolean enabled, @QueryParam("briefRepresentation") Boolean briefRepresentation, @QueryParam("exact") Boolean exact, @QueryParam("q") String searchQuery)
      Get users Returns a stream of users, filtered according to query parameters.
      Parameters:
      search - A String contained in username, first or last name, or email. Default search behavior is prefix-based (e.g., foo or foo*). Use *foo* for infix search and "foo" for exact search.
      last - A String contained in lastName, or the complete lastName, if param "exact" is true
      first - A String contained in firstName, or the complete firstName, if param "exact" is true
      email - A String contained in email, or the complete email, if param "exact" is true
      username - A String contained in username, or the complete username, if param "exact" is true
      emailVerified - whether the email has been verified
      idpAlias - The alias of an Identity Provider linked to the user
      idpUserId - The userId at an Identity Provider linked to the user
      firstResult - Pagination offset
      maxResults - Maximum results size (defaults to 100)
      enabled - Boolean representing if user is enabled or not
      briefRepresentation - Boolean which defines whether brief representations are returned (default: false)
      exact - Boolean which defines whether the params "last", "first", "email" and "username" must match exactly
      searchQuery - A query to search for custom attributes, in the format 'key1:value2 key2:value2'
      Returns:
      a non-null Stream of users
    • getUsersCount

      @Path("count") @GET @Produces("application/json") public Integer getUsersCount(@QueryParam("search") String search, @QueryParam("lastName") String last, @QueryParam("firstName") String first, @QueryParam("email") String email, @QueryParam("emailVerified") Boolean emailVerified, @QueryParam("username") String username, @QueryParam("enabled") Boolean enabled, @QueryParam("q") String searchQuery)
      Returns the number of users that match the given criteria. It can be called in three different ways. 1. Don't specify any criteria and pass null. The number of all users within that realm will be returned.

      2. If search is specified other criteria such as last will be ignored even though you set them. The search string will be matched against the first and last name, the username and the email of a user.

      3. If search is unspecified but any of last, first, email or username those criteria are matched against their respective fields on a user entity. Combined with a logical and.

      Parameters:
      search - arbitrary search string for all the fields below. Default search behavior is prefix-based (e.g., foo or foo*). Use *foo* for infix search and "foo" for exact search.
      last - last name filter
      first - first name filter
      email - email filter
      username - username filter
      enabled - Boolean representing if user is enabled or not
      Returns:
      the number of users that match the given criteria
    • userProfile

      @Path("profile") public UserProfileResource userProfile()
      Get representation of the user
      Parameters:
      id - User id
      Returns: