java.lang.Object
org.keycloak.protocol.AuthorizationEndpointBase
org.keycloak.protocol.oidc.grants.device.endpoints.DeviceEndpoint
All Implemented Interfaces:
Provider, RealmResourceProvider

public class DeviceEndpoint extends AuthorizationEndpointBase implements RealmResourceProvider
Author:
Hiroyuki Wada
  • Field Details

    • logger

      protected static final org.jboss.logging.Logger logger
    • SHORT_VERIFICATION_URI

      public static final String SHORT_VERIFICATION_URI
      See Also:
  • Constructor Details

  • Method Details

    • handleDeviceRequest

      @Path("") @POST @Consumes("application/x-www-form-urlencoded") @Produces("application/json") public jakarta.ws.rs.core.Response handleDeviceRequest()
      Handles device authorization requests.
      Returns:
      the device authorization response.
    • preflight

      @OPTIONS public jakarta.ws.rs.core.Response preflight()
    • verifyUserCode

      @GET public jakarta.ws.rs.core.Response verifyUserCode(@QueryParam("user_code") String userCode)
      This endpoint is used by end-users to start the flow to authorize a device.
      Parameters:
      userCode - the user code to authorize
      Returns:
    • verifyUserCode

      @Path("/") @POST @Consumes("application/x-www-form-urlencoded") public jakarta.ws.rs.core.Response verifyUserCode()
      Verifies the code provided by the end-user and start the authentication.
      Returns:
    • status

      @Path("status") @GET public jakarta.ws.rs.core.Response status(@QueryParam("error") String error)
      Showing the result of verification process for OAuth 2.0 Device Authorization Grant. This outputs login success or failure messages.
      Parameters:
      error -
      Returns:
    • getDeviceByUserCode

      public static OAuth2DeviceCodeModel getDeviceByUserCode(KeycloakSession session, RealmModel realm, String userCode)
    • getResource

      public Object getResource()
      Description copied from interface: RealmResourceProvider

      Returns a JAX-RS resource instance.

      Specified by:
      getResource in interface RealmResourceProvider
      Returns:
      a JAX-RS sub-resource instance
    • close

      public void close()
      Specified by:
      close in interface Provider
    • createAuthenticationSession

      protected AuthenticationSessionModel createAuthenticationSession(ClientModel client, String scope)
      Overrides:
      createAuthenticationSession in class AuthorizationEndpointBase