Package io.jans.as.server.service
Class DeviceAuthorizationService
- java.lang.Object
-
- io.jans.as.server.service.DeviceAuthorizationService
-
- All Implemented Interfaces:
Serializable
@Named public class DeviceAuthorizationService extends Object implements Serializable
Service used to process data related to device code grant type.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static StringSESSION_ATTEMPTSstatic StringSESSION_LAST_ATTEMPTstatic StringSESSION_USER_CODE
-
Constructor Summary
Constructors Constructor Description DeviceAuthorizationService()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description StringgetDeviceAuthorizationPage(DeviceAuthorizationCacheControl deviceAuthorizationCacheControl, io.jans.as.common.model.registration.Client client, String state, jakarta.servlet.http.HttpServletRequest servletRequest)Validates data related to the cache, status and client in order to return correct redirection used to process device authorizations.DeviceAuthorizationCacheControlgetDeviceAuthzByDeviceCode(String deviceCode)Returns cache data related to the device authz request using user_code as cache key.DeviceAuthorizationCacheControlgetDeviceAuthzByUserCode(String userCode)Returns cache data related to the device authz request using device_code as cache key.StringgetUserCodeFromSession(jakarta.servlet.http.HttpServletRequest httpRequest)Uses an HttpServletRequest, process it and return userCode in the session whether it exists.booleanhasDeviceCodeCompatibility(io.jans.as.common.model.registration.Client client)Verifies whether a specific client has Device Code grant type compatibility.voidremoveDeviceAuthRequestInCache(String userCode, String deviceCode)Removes device request data from cache using user_code and device_code.voidsaveInCache(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.
-
-
-
Field Detail
-
SESSION_ATTEMPTS
public static final String SESSION_ATTEMPTS
- See Also:
- Constant Field Values
-
SESSION_LAST_ATTEMPT
public static final String SESSION_LAST_ATTEMPT
- See Also:
- Constant Field Values
-
SESSION_USER_CODE
public static final String SESSION_USER_CODE
- See Also:
- Constant Field Values
-
-
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(String userCode)
Returns cache data related to the device authz request using device_code as cache key.
-
getDeviceAuthzByDeviceCode
public DeviceAuthorizationCacheControl getDeviceAuthzByDeviceCode(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 String getDeviceAuthorizationPage(DeviceAuthorizationCacheControl deviceAuthorizationCacheControl, io.jans.as.common.model.registration.Client client, String state, jakarta.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(String userCode, 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 String getUserCodeFromSession(jakarta.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.
-
-