Class DeviceAuthorizationService

  • All Implemented Interfaces:
    java.io.Serializable

    @Named
    public class DeviceAuthorizationService
    extends java.lang.Object
    implements java.io.Serializable
    Service used to process data related to device code grant type.
    See Also:
    Serialized Form
    • Field Detail

      • SESSION_ATTEMPTS

        public static final java.lang.String SESSION_ATTEMPTS
        See Also:
        Constant Field Values
      • SESSION_LAST_ATTEMPT

        public static final java.lang.String SESSION_LAST_ATTEMPT
        See Also:
        Constant Field Values
      • SESSION_USER_CODE

        public static final java.lang.String SESSION_USER_CODE
        See Also:
        Constant Field Values
    • Constructor Detail

      • DeviceAuthorizationService

        public DeviceAuthorizationService()
    • Method Detail

      • saveInCache

        public void saveInCache​(DeviceAuthorizationCacheControl data,
                                boolean saveDeviceCode,
                                boolean saveUserCode)
        Saves data in cache, it could be saved with two identifiers used by Token endpoint or device_authorization page.
        Parameters:
        data - Data to be saved.
        saveDeviceCode - Defines whether data should be saved using device code.
        saveUserCode - Defines whether data should be saved using user code.
      • getDeviceAuthzByUserCode

        public DeviceAuthorizationCacheControl getDeviceAuthzByUserCode​(java.lang.String userCode)
        Returns cache data related to the device authz request using device_code as cache key.
      • getDeviceAuthzByDeviceCode

        public DeviceAuthorizationCacheControl getDeviceAuthzByDeviceCode​(java.lang.String deviceCode)
        Returns cache data related to the device authz request using user_code as cache key.
      • hasDeviceCodeCompatibility

        public boolean hasDeviceCodeCompatibility​(io.jans.as.common.model.registration.Client client)
        Verifies whether a specific client has Device Code grant type compatibility.
        Parameters:
        client - Client to check.
      • getDeviceAuthorizationPage

        public java.lang.String getDeviceAuthorizationPage​(DeviceAuthorizationCacheControl deviceAuthorizationCacheControl,
                                                           io.jans.as.common.model.registration.Client client,
                                                           java.lang.String state,
                                                           javax.servlet.http.HttpServletRequest servletRequest)
        Validates data related to the cache, status and client in order to return correct redirection used to process device authorizations.
        Parameters:
        deviceAuthorizationCacheControl - Cache data related to the device code request.
        client - Client in process.
        state - State of the authorization request.
        servletRequest - HttpServletRequest
      • removeDeviceAuthRequestInCache

        public void removeDeviceAuthRequestInCache​(java.lang.String userCode,
                                                   java.lang.String deviceCode)
        Removes device request data from cache using user_code and device_code.
        Parameters:
        userCode - User code used as key in cache.
        deviceCode - Device code used as key in cache.
      • getUserCodeFromSession

        public java.lang.String getUserCodeFromSession​(javax.servlet.http.HttpServletRequest httpRequest)
        Uses an HttpServletRequest, process it and return userCode in the session whether it exists.
        Parameters:
        httpRequest - Request received from an user agent.