Class AuthRequestDeserializer
- All Implemented Interfaces:
com.fasterxml.jackson.databind.deser.NullValueProvider
,com.fasterxml.jackson.databind.deser.ValueInstantiator.Gettable
,Serializable
OAuth2AuthorizationRequest
, enabling reconstruction of
authorization requests from JSON data. This is particularly useful for restoring saved OAuth2
Authorization Requests that were serialized into JSON (e.g., stored in cookies or other stateless
media).
The deserializer reads a JSON object, extracts essential fields (clientId, authorizationUri,
redirectUri, state), and also handles optional arrays (scopes) and maps (attributes,
additionalParameters). It validates that required fields are present, and throws a JsonMappingException
if any are missing.
By extending StdDeserializer
, this class integrates smoothly with Jackson's
deserialization pipeline. It meticulously reconstructs a fully functional OAuth2AuthorizationRequest
by calling its builder.
Intended for use when the default storage (such as HTTP session) is replaced with a stateless mechanism (for example, storing requests in cookies), and you need to deserialize requests back into usable objects for the OAuth2 authorization flow.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class com.fasterxml.jackson.databind.JsonDeserializer
com.fasterxml.jackson.databind.JsonDeserializer.None
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final com.fasterxml.jackson.databind.ObjectReader
Fields inherited from class com.fasterxml.jackson.databind.deser.std.StdDeserializer
_valueClass, _valueType, F_MASK_INT_COERCIONS
-
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor, informing Jackson of the handled type. -
Method Summary
Modifier and TypeMethodDescriptionorg.springframework.security.oauth2.core.endpoint.OAuth2AuthorizationRequest
deserialize
(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ct) Class
<org.springframework.security.oauth2.core.endpoint.OAuth2AuthorizationRequest> parseScopes
(com.fasterxml.jackson.core.JsonParser p) private static String
requireField
(String value, String name, com.fasterxml.jackson.core.JsonParser p) Validates presence of required fields.Methods inherited from class com.fasterxml.jackson.databind.deser.std.StdDeserializer
_byteOverflow, _checkBooleanToStringCoercion, _checkCoercionFail, _checkDoubleSpecialValue, _checkFloatSpecialValue, _checkFloatToIntCoercion, _checkFloatToStringCoercion, _checkFromStringCoercion, _checkFromStringCoercion, _checkIntToFloatCoercion, _checkIntToStringCoercion, _checkTextualNull, _checkToStringCoercion, _coerceBooleanFromInt, _coercedTypeDesc, _coercedTypeDesc, _coerceIntegral, _deserializeFromArray, _deserializeFromEmptyString, _deserializeFromString, _deserializeWrappedValue, _findCoercionFromBlankString, _findCoercionFromEmptyArray, _findCoercionFromEmptyString, _findNullProvider, _hasTextualNull, _intOverflow, _isBlank, _isFalse, _isIntNumber, _isNaN, _isNegInf, _isPosInf, _isTrue, _neitherNull, _nonNullNumber, _parseBoolean, _parseBooleanPrimitive, _parseBytePrimitive, _parseDate, _parseDate, _parseDateFromArray, _parseDouble, _parseDouble, _parseDoublePrimitive, _parseDoublePrimitive, _parseDoublePrimitive, _parseFloatPrimitive, _parseFloatPrimitive, _parseInteger, _parseInteger, _parseIntPrimitive, _parseIntPrimitive, _parseLong, _parseLong, _parseLongPrimitive, _parseLongPrimitive, _parseShortPrimitive, _parseString, _reportFailedNullCoerce, _shortOverflow, _verifyEndArrayForSingle, _verifyNullForPrimitive, _verifyNullForPrimitiveCoercion, deserializeWithType, findContentNullProvider, findContentNullStyle, findConvertingContentDeserializer, findDeserializer, findFormatFeature, findFormatOverrides, findValueNullProvider, getValueInstantiator, getValueType, getValueType, handleMissingEndArrayForSingle, handleNestedArrayForSingle, handleUnknownProperty, isDefaultDeserializer, isDefaultKeyDeserializer
Methods inherited from class com.fasterxml.jackson.databind.JsonDeserializer
deserialize, deserializeWithType, findBackReference, getAbsentValue, getDelegatee, getEmptyAccessPattern, getEmptyValue, getKnownPropertyNames, getNullAccessPattern, getNullValue, getObjectIdReader, isCachable, logicalType, replaceDelegatee, supportsUpdate, unwrappingDeserializer
-
Field Details
-
MAP_TYPE
-
MAP_READER
private static final com.fasterxml.jackson.databind.ObjectReader MAP_READER
-
-
Constructor Details
-
AuthRequestDeserializer
public AuthRequestDeserializer()Default constructor, informing Jackson of the handled type.
-
-
Method Details
-
deserialize
public org.springframework.security.oauth2.core.endpoint.OAuth2AuthorizationRequest deserialize(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ct) throws IOException - Specified by:
deserialize
in classcom.fasterxml.jackson.databind.JsonDeserializer<org.springframework.security.oauth2.core.endpoint.OAuth2AuthorizationRequest>
- Throws:
IOException
-
requireField
private static String requireField(String value, String name, com.fasterxml.jackson.core.JsonParser p) throws com.fasterxml.jackson.databind.JsonMappingException Validates presence of required fields.- Parameters:
value
- the value to checkname
- field namep
- current JsonParser instance- Returns:
- the value if valid
- Throws:
com.fasterxml.jackson.databind.JsonMappingException
- if value is null
-
parseScopes
Parses the JSON array of scopes into aSet<String>
. Skips non-string entries and returns an immutable set.- Parameters:
p
- current JsonParser- Returns:
- a Set of scope strings
- Throws:
IOException
- on parse error
-
handledType
public Class<org.springframework.security.oauth2.core.endpoint.OAuth2AuthorizationRequest> handledType()- Overrides:
handledType
in classcom.fasterxml.jackson.databind.deser.std.StdDeserializer<org.springframework.security.oauth2.core.endpoint.OAuth2AuthorizationRequest>
-