Package com.nimbusds.oauth2.sdk
Class AuthorizationRequest
- java.lang.Object
-
- com.nimbusds.oauth2.sdk.AbstractRequest
-
- com.nimbusds.oauth2.sdk.AuthorizationRequest
-
- Direct Known Subclasses:
AuthenticationRequest
@Immutable public class AuthorizationRequest extends AbstractRequest
Authorisation request. Used to authenticate an end-user and request the end-user's consent to grant the client access to a protected resource. Supports custom request parameters.Extending classes may define additional request parameters as well as enforce tighter requirements on the base parameters.
Example HTTP request:
https://server.example.com/authorize? response_type=code &client_id=s6BhdRkqt3 &state=xyz &redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb
Related specifications:
- OAuth 2.0 (RFC 6749), sections 4.1.1 and 4.2.1.
- OAuth 2.0 Multiple Response Type Encoding Practices 1.0.
- OAuth 2.0 Form Post Response Mode 1.0.
- Proof Key for Code Exchange by OAuth Public Clients (RFC 7636).
- Resource Indicators for OAuth 2.0 (draft-ietf-oauth-resource-indicators-00)
- OAuth 2.0 Incremental Authorization (draft-ietf-oauth-incremental-authz-00)
- The OAuth 2.0 Authorization Framework: JWT Secured Authorization Request (JAR) draft-ietf-oauth-jwsreq-17
- Financial-grade API: JWT Secured Authorization Response Mode for OAuth 2.0 (JARM)
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classAuthorizationRequest.BuilderBuilder for constructing authorisation requests.
-
Constructor Summary
Constructors Constructor Description AuthorizationRequest(URI uri, ResponseType rt, ClientID clientID)Creates a new minimal authorisation request.AuthorizationRequest(URI uri, ResponseType rt, ResponseMode rm, ClientID clientID, URI redirectURI, Scope scope, State state)Creates a new authorisation request.AuthorizationRequest(URI uri, ResponseType rt, ResponseMode rm, ClientID clientID, URI redirectURI, Scope scope, State state, CodeChallenge codeChallenge, CodeChallengeMethod codeChallengeMethod, List<URI> resources, boolean includeGrantedScopes, com.nimbusds.jwt.JWT requestObject, URI requestURI, Prompt prompt, Map<String,List<String>> customParams)Creates a new authorisation request with extension and custom parameters.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description ClientIDgetClientID()Gets the client identifier.CodeChallengegetCodeChallenge()Returns the code challenge for PKCE.CodeChallengeMethodgetCodeChallengeMethod()Returns the code challenge method for PKCE.List<String>getCustomParameter(String name)Returns the specified custom parameter.Map<String,List<String>>getCustomParameters()Returns the additional custom parameters.PromptgetPrompt()Gets the requested prompt.URIgetRedirectionURI()Gets the redirection URI.static Set<String>getRegisteredParameterNames()Returns the registered (standard) OAuth 2.0 authorisation request parameter names.com.nimbusds.jwt.JWTgetRequestObject()Gets the request object.URIgetRequestURI()Gets the request object URI.List<URI>getResources()Returns the resource server URI.ResponseModegetResponseMode()Gets the optional response mode.ResponseTypegetResponseType()Gets the response type.ScopegetScope()Gets the scope.StategetState()Gets the state.ResponseModeimpliedResponseMode()Returns the implied response mode, determined by the optionalresponse_modeparameter, and if that isn't specified, by theresponse_type.booleanincludeGrantedScopes()Returnstrueif incremental authorisation is requested.static AuthorizationRequestparse(HTTPRequest httpRequest)Parses an authorisation request from the specified HTTP request.static AuthorizationRequestparse(String query)Parses an authorisation request from the specified URI query string.static AuthorizationRequestparse(URI uri)Parses an authorisation request from the specified URI.static AuthorizationRequestparse(URI uri, String query)Parses an authorisation request from the specified URI and query string.static AuthorizationRequestparse(URI uri, Map<String,List<String>> params)Parses an authorisation request from the specified URI and query parameters.static AuthorizationRequestparse(Map<String,List<String>> params)Parses an authorisation request from the specified URI query parameters.booleanspecifiesRequestObject()Returnstrueif this is a JWT secured authentication request.HTTPRequesttoHTTPRequest()Returns the matching HTTP request.HTTPRequesttoHTTPRequest(HTTPRequest.Method method)Returns the matching HTTP request.com.nimbusds.jwt.JWTClaimsSettoJWTClaimsSet()Returns the parameters for this authorisation request as a JSON Web Token (JWT) claims set.Map<String,List<String>>toParameters()Returns the URI query parameters for this authorisation request.StringtoQueryString()Returns the URI query string for this authorisation request.URItoURI()Returns the complete URI representation for this authorisation request, consisting of theauthorization endpoint URIwith thequery stringappended.-
Methods inherited from class com.nimbusds.oauth2.sdk.AbstractRequest
getEndpointURI
-
-
-
-
Constructor Detail
-
AuthorizationRequest
public AuthorizationRequest(URI uri, ResponseType rt, ClientID clientID)
Creates a new minimal authorisation request.- Parameters:
uri- The URI of the authorisation endpoint. May benullif thetoHTTPRequest(com.nimbusds.oauth2.sdk.http.HTTPRequest.Method)method will not be used.rt- The response type. Corresponds to theresponse_typeparameter. Must not benull.clientID- The client identifier. Corresponds to theclient_idparameter. Must not benull.
-
AuthorizationRequest
public AuthorizationRequest(URI uri, ResponseType rt, ResponseMode rm, ClientID clientID, URI redirectURI, Scope scope, State state)
Creates a new authorisation request.- Parameters:
uri- The URI of the authorisation endpoint. May benullif thetoHTTPRequest(com.nimbusds.oauth2.sdk.http.HTTPRequest.Method)method will not be used.rt- The response type. Corresponds to theresponse_typeparameter. Must not benull.rm- The response mode. Corresponds to the optionalresponse_modeparameter. Use of this parameter is not recommended unless a non-default response mode is requested (e.g. form_post).clientID- The client identifier. Corresponds to theclient_idparameter. Must not benull.redirectURI- The redirection URI. Corresponds to the optionalredirect_uriparameter.nullif not specified.scope- The request scope. Corresponds to the optionalscopeparameter.nullif not specified.state- The state. Corresponds to the recommendedstateparameter.nullif not specified.
-
AuthorizationRequest
public AuthorizationRequest(URI uri, ResponseType rt, ResponseMode rm, ClientID clientID, URI redirectURI, Scope scope, State state, CodeChallenge codeChallenge, CodeChallengeMethod codeChallengeMethod, List<URI> resources, boolean includeGrantedScopes, com.nimbusds.jwt.JWT requestObject, URI requestURI, Prompt prompt, Map<String,List<String>> customParams)
Creates a new authorisation request with extension and custom parameters.- Parameters:
uri- The URI of the authorisation endpoint. May benullif thetoHTTPRequest(com.nimbusds.oauth2.sdk.http.HTTPRequest.Method)method will not be used.rt- The response type. Corresponds to theresponse_typeparameter. Must not benull, unless a request a request object or URI is specified.rm- The response mode. Corresponds to the optionalresponse_modeparameter. Use of this parameter is not recommended unless a non-default response mode is requested (e.g. form_post).clientID- The client identifier. Corresponds to theclient_idparameter. Must not benull, unless a request object or URI is specified.redirectURI- The redirection URI. Corresponds to the optionalredirect_uriparameter.nullif not specified.scope- The request scope. Corresponds to the optionalscopeparameter.nullif not specified.state- The state. Corresponds to the recommendedstateparameter.nullif not specified.codeChallenge- The code challenge for PKCE,nullif not specified.codeChallengeMethod- The code challenge method for PKCE,nullif not specified.resources- The resource URI(s),nullif not specified.includeGrantedScopes-trueto request incremental authorisation.requestObject- The request object. Corresponds to the optionalrequestparameter. Must not be specified together with a request object URI.nullif not specified.requestURI- The request object URI. Corresponds to the optionalrequest_uriparameter. Must not be specified together with a request object.nullif not specified.prompt- The requested prompt. Corresponds to the optionalpromptparameter.customParams- Custom parameters, empty map ornullif none.
-
-
Method Detail
-
getRegisteredParameterNames
public static Set<String> getRegisteredParameterNames()
Returns the registered (standard) OAuth 2.0 authorisation request parameter names.- Returns:
- The registered OAuth 2.0 authorisation request parameter names, as a unmodifiable set.
-
getResponseType
public ResponseType getResponseType()
Gets the response type. Corresponds to theresponse_typeparameter.- Returns:
- The response type, may be
nullfor aJWT secured authorisation requestwith arequestorrequest_uriparameter.
-
getResponseMode
public ResponseMode getResponseMode()
Gets the optional response mode. Corresponds to the optionalresponse_modeparameter.- Returns:
- The response mode,
nullif not specified.
-
impliedResponseMode
public ResponseMode impliedResponseMode()
Returns the implied response mode, determined by the optionalresponse_modeparameter, and if that isn't specified, by theresponse_type.- Returns:
- The implied response mode.
-
getClientID
public ClientID getClientID()
Gets the client identifier. Corresponds to theclient_idparameter.- Returns:
- The client identifier, may be
nullfor aJWT secured authorisation requestwith arequestorrequest_uriparameter.
-
getRedirectionURI
public URI getRedirectionURI()
Gets the redirection URI. Corresponds to the optionalredirection_uriparameter.- Returns:
- The redirection URI,
nullif not specified.
-
getScope
public Scope getScope()
Gets the scope. Corresponds to the optionalscopeparameter.- Returns:
- The scope,
nullif not specified.
-
getState
public State getState()
Gets the state. Corresponds to the recommendedstateparameter.- Returns:
- The state,
nullif not specified.
-
getCodeChallenge
public CodeChallenge getCodeChallenge()
Returns the code challenge for PKCE.- Returns:
- The code challenge,
nullif not specified.
-
getCodeChallengeMethod
public CodeChallengeMethod getCodeChallengeMethod()
Returns the code challenge method for PKCE.- Returns:
- The code challenge method,
nullif not specified.
-
getResources
public List<URI> getResources()
Returns the resource server URI.- Returns:
- The resource URI(s),
nullif not specified.
-
includeGrantedScopes
public boolean includeGrantedScopes()
Returnstrueif incremental authorisation is requested.- Returns:
trueif incremental authorisation is requested, elsefalse.
-
getRequestObject
public com.nimbusds.jwt.JWT getRequestObject()
Gets the request object. Corresponds to the optionalrequestparameter.- Returns:
- The request object,
nullif not specified.
-
getRequestURI
public URI getRequestURI()
Gets the request object URI. Corresponds to the optionalrequest_uriparameter.- Returns:
- The request object URI,
nullif not specified.
-
specifiesRequestObject
public boolean specifiesRequestObject()
Returnstrueif this is a JWT secured authentication request.- Returns:
trueif a request object via arequestorrequest_uriparameter is specified, elsefalse.
-
getPrompt
public Prompt getPrompt()
Gets the requested prompt. Corresponds to the optionalpromptparameter.- Returns:
- The requested prompt,
nullif not specified.
-
getCustomParameters
public Map<String,List<String>> getCustomParameters()
Returns the additional custom parameters.- Returns:
- The additional custom parameters as a unmodifiable map, empty map if none.
-
getCustomParameter
public List<String> getCustomParameter(String name)
Returns the specified custom parameter.- Parameters:
name- The parameter name. Must not benull.- Returns:
- The parameter value(s),
nullif not specified.
-
toParameters
public Map<String,List<String>> toParameters()
Returns the URI query parameters for this authorisation request. Query parameters which are part of the authorisation endpoint are not included.Example parameters:
response_type = code client_id = s6BhdRkqt3 state = xyz redirect_uri = https://client.example.com/cb
- Returns:
- The parameters.
-
toJWTClaimsSet
public com.nimbusds.jwt.JWTClaimsSet toJWTClaimsSet()
Returns the parameters for this authorisation request as a JSON Web Token (JWT) claims set. Intended for creating a request object.- Returns:
- The parameters as JWT claim set.
-
toQueryString
public String toQueryString()
Returns the URI query string for this authorisation request.Note that the '?' character preceding the query string in an URI is not included in the returned string.
Example URI query string:
response_type=code &client_id=s6BhdRkqt3 &state=xyz &redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb
- Returns:
- The URI query string.
-
toURI
public URI toURI()
Returns the complete URI representation for this authorisation request, consisting of theauthorization endpoint URIwith thequery stringappended.Example URI:
https://server.example.com/authorize? response_type=code &client_id=s6BhdRkqt3 &state=xyz &redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb
- Returns:
- The URI representation.
-
toHTTPRequest
public HTTPRequest toHTTPRequest(HTTPRequest.Method method)
Returns the matching HTTP request.- Parameters:
method- The HTTP request method which can be GET or POST. Must not benull.- Returns:
- The HTTP request.
-
toHTTPRequest
public HTTPRequest toHTTPRequest()
Description copied from interface:RequestReturns the matching HTTP request.- Returns:
- The HTTP request.
-
parse
public static AuthorizationRequest parse(Map<String,List<String>> params) throws ParseException
Parses an authorisation request from the specified URI query parameters.Example parameters:
response_type = code client_id = s6BhdRkqt3 state = xyz redirect_uri = https://client.example.com/cb
- Parameters:
params- The parameters. Must not benull.- Returns:
- The authorisation request.
- Throws:
ParseException- If the parameters couldn't be parsed to an authorisation request.
-
parse
public static AuthorizationRequest parse(URI uri, Map<String,List<String>> params) throws ParseException
Parses an authorisation request from the specified URI and query parameters.Example parameters:
response_type = code client_id = s6BhdRkqt3 state = xyz redirect_uri = https://client.example.com/cb
- Parameters:
uri- The URI of the authorisation endpoint. May benullif thetoHTTPRequest()method will not be used.params- The parameters. Must not benull.- Returns:
- The authorisation request.
- Throws:
ParseException- If the parameters couldn't be parsed to an authorisation request.
-
parse
public static AuthorizationRequest parse(String query) throws ParseException
Parses an authorisation request from the specified URI query string.Example URI query string:
response_type=code &client_id=s6BhdRkqt3 &state=xyz &redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb
- Parameters:
query- The URI query string. Must not benull.- Returns:
- The authorisation request.
- Throws:
ParseException- If the query string couldn't be parsed to an authorisation request.
-
parse
public static AuthorizationRequest parse(URI uri, String query) throws ParseException
Parses an authorisation request from the specified URI and query string.Example URI query string:
response_type=code &client_id=s6BhdRkqt3 &state=xyz &redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb
- Parameters:
uri- The URI of the authorisation endpoint. May benullif thetoHTTPRequest()method will not be used.query- The URI query string. Must not benull.- Returns:
- The authorisation request.
- Throws:
ParseException- If the query string couldn't be parsed to an authorisation request.
-
parse
public static AuthorizationRequest parse(URI uri) throws ParseException
Parses an authorisation request from the specified URI.Example URI:
https://server.example.com/authorize? response_type=code &client_id=s6BhdRkqt3 &state=xyz &redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb
- Parameters:
uri- The URI. Must not benull.- Returns:
- The authorisation request.
- Throws:
ParseException- If the URI couldn't be parsed to an authorisation request.
-
parse
public static AuthorizationRequest parse(HTTPRequest httpRequest) throws ParseException
Parses an authorisation request from the specified HTTP request.Example HTTP request (GET):
https://server.example.com/authorize? response_type=code &client_id=s6BhdRkqt3 &state=xyz &redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb
- Parameters:
httpRequest- The HTTP request. Must not benull.- Returns:
- The authorisation request.
- Throws:
ParseException- If the HTTP request couldn't be parsed to an authorisation request.
-
-