Package com.nimbusds.oauth2.sdk
Class TokenRequest
Token request. Used to obtain an
access token and an
optional refresh token
at the Token endpoint of the authorisation server. Supports custom request
parameters.
Example token request with an authorisation code grant:
POST /token HTTP/1.1 Host: server.example.com Content-Type: application/x-www-form-urlencoded Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW grant_type=authorization_code &code=SplxlOBeZQQYbYS6WxSbIA &redirect_uri=https%3A%2F%2Fclient.example.org%2Fcb
Related specifications:
- OAuth 2.0 (RFC 6749), sections 4.1.3, 4.3.2, 4.4.2 and 6.
- OAuth 2.0 Rich Authorization Requests (RFC 9396), section 6.
- Resource Indicators for OAuth 2.0 (RFC 8707)
- OAuth 2.0 Incremental Authorization (draft-ietf-oauth-incremental-authz-04)
-
Constructor Summary
ConstructorsConstructorDescriptionTokenRequest(URI uri, ClientAuthentication clientAuth, AuthorizationGrant authzGrant) Creates a new token request with the specified client authentication.TokenRequest(URI uri, ClientAuthentication clientAuth, AuthorizationGrant authzGrant, Scope scope) Creates a new token request with the specified client authentication.TokenRequest(URI uri, ClientAuthentication clientAuth, AuthorizationGrant authzGrant, Scope scope, List<AuthorizationDetail> authorizationDetails, List<URI> resources, Map<String, List<String>> customParams) Creates a new token request with the specified client authentication and extension and custom parameters.TokenRequest(URI uri, ClientAuthentication clientAuth, AuthorizationGrant authzGrant, Scope scope, List<URI> resources, Map<String, List<String>> customParams) Creates a new token request with the specified client authentication and extension and custom parameters.TokenRequest(URI uri, AuthorizationGrant authzGrant) Creates a new token request, without client authentication and a specified client identifier.TokenRequest(URI uri, AuthorizationGrant authzGrant, Scope scope) Creates a new token request, without client authentication and a specified client identifier.TokenRequest(URI uri, ClientID clientID, AuthorizationGrant authzGrant) Creates a new token request, with no explicit client authentication (maybe present in the grant depending on its type).TokenRequest(URI uri, ClientID clientID, AuthorizationGrant authzGrant, Scope scope) Creates a new token request, with no explicit client authentication (maybe present in the grant depending on its type).TokenRequest(URI uri, ClientID clientID, AuthorizationGrant authzGrant, Scope scope, List<AuthorizationDetail> authorizationDetails, List<URI> resources, RefreshToken existingGrant, Map<String, List<String>> customParams) Creates a new token request, with no explicit client authentication (maybe present in the grant depending on its type) and extension and custom parameters.TokenRequest(URI uri, ClientID clientID, AuthorizationGrant authzGrant, Scope scope, List<URI> resources, RefreshToken existingGrant, Map<String, List<String>> customParams) Creates a new token request, with no explicit client authentication (maybe present in the grant depending on its type) and extension and custom parameters. -
Method Summary
Modifier and TypeMethodDescriptionReturns the Rich Authorisation Request (RAR) details.Returns the authorisation grant.getCustomParameter(String name) Returns the specified custom parameter included in the request body.Returns the additional custom parameters included in the request body.Returns the existing refresh token for incremental authorisation of a public client,nullif not specified.Returns the resource server URI.getScope()Returns the requested scope.static TokenRequestparse(HTTPRequest httpRequest) Parses a token request from the specified HTTP request.Returns the matching HTTP request.Methods inherited from class com.nimbusds.oauth2.sdk.AbstractOptionallyIdentifiedRequest
getClientIDMethods inherited from class com.nimbusds.oauth2.sdk.AbstractOptionallyAuthenticatedRequest
getClientAuthenticationMethods inherited from class com.nimbusds.oauth2.sdk.AbstractRequest
getEndpointURI
-
Constructor Details
-
TokenRequest
public TokenRequest(URI uri, ClientAuthentication clientAuth, AuthorizationGrant authzGrant, Scope scope) Creates a new token request with the specified client authentication.- Parameters:
uri- The URI of the token endpoint. May benullif thetoHTTPRequest()method will not be used.clientAuth- The client authentication. Must not benull.authzGrant- The authorisation grant. Must not benull.scope- The requested scope,nullif not specified.
-
TokenRequest
public TokenRequest(URI uri, ClientAuthentication clientAuth, AuthorizationGrant authzGrant, Scope scope, List<URI> resources, Map<String, List<String>> customParams) Creates a new token request with the specified client authentication and extension and custom parameters.- Parameters:
uri- The URI of the token endpoint. May benullif thetoHTTPRequest()method will not be used.clientAuth- The client authentication. Must not benull.authzGrant- The authorisation grant. Must not benull.scope- The requested scope,nullif not specified.resources- The resource URI(s),nullif not specified.customParams- Custom parameters to be included in the request body, empty map ornullif none.
-
TokenRequest
public TokenRequest(URI uri, ClientAuthentication clientAuth, AuthorizationGrant authzGrant, Scope scope, List<AuthorizationDetail> authorizationDetails, List<URI> resources, Map<String, List<String>> customParams) Creates a new token request with the specified client authentication and extension and custom parameters.- Parameters:
uri- The URI of the token endpoint. May benullif thetoHTTPRequest()method will not be used.clientAuth- The client authentication. Must not benull.authzGrant- The authorisation grant. Must not benull.scope- The requested scope,nullif not specified.authorizationDetails- The Rich Authorisation Request (RAR) details,nullif not specified.resources- The resource URI(s),nullif not specified.customParams- Custom parameters to be included in the request body, empty map ornullif none.
-
TokenRequest
Creates a new token request with the specified client authentication.- Parameters:
uri- The URI of the token endpoint. May benullif thetoHTTPRequest()method will not be used.clientAuth- The client authentication. Must not benull.authzGrant- The authorisation grant. Must not benull.
-
TokenRequest
Creates a new token request, with no explicit client authentication (maybe present in the grant depending on its type).- Parameters:
uri- The URI of the token endpoint. May benullif thetoHTTPRequest()method will not be used.clientID- The client identifier,nullif not specified.authzGrant- The authorisation grant. Must not benull.scope- The requested scope,nullif not specified.
-
TokenRequest
public TokenRequest(URI uri, ClientID clientID, AuthorizationGrant authzGrant, Scope scope, List<URI> resources, RefreshToken existingGrant, Map<String, List<String>> customParams) Creates a new token request, with no explicit client authentication (maybe present in the grant depending on its type) and extension and custom parameters.- Parameters:
uri- The URI of the token endpoint. May benullif thetoHTTPRequest()method will not be used.clientID- The client identifier,nullif not specified.authzGrant- The authorisation grant. Must not benull.scope- The requested scope,nullif not specified.resources- The resource URI(s),nullif not specified.existingGrant- Existing refresh token for incremental authorisation of a public client,nullif not specified.customParams- Custom parameters to be included in the request body, empty map ornullif none.
-
TokenRequest
public TokenRequest(URI uri, ClientID clientID, AuthorizationGrant authzGrant, Scope scope, List<AuthorizationDetail> authorizationDetails, List<URI> resources, RefreshToken existingGrant, Map<String, List<String>> customParams) Creates a new token request, with no explicit client authentication (maybe present in the grant depending on its type) and extension and custom parameters.- Parameters:
uri- The URI of the token endpoint. May benullif thetoHTTPRequest()method will not be used.clientID- The client identifier,nullif not specified.authzGrant- The authorisation grant. Must not benull.scope- The requested scope,nullif not specified.authorizationDetails- The Rich Authorisation Request (RAR) details,nullif not specified.resources- The resource URI(s),nullif not specified.existingGrant- Existing refresh token for incremental authorisation of a public client,nullif not specified.customParams- Custom parameters to be included in the request body, empty map ornullif none.
-
TokenRequest
Creates a new token request, with no explicit client authentication (maybe present in the grant depending on its type).- Parameters:
uri- The URI of the token endpoint. May benullif thetoHTTPRequest()method will not be used.clientID- The client identifier,nullif not specified.authzGrant- The authorisation grant. Must not benull.
-
TokenRequest
Creates a new token request, without client authentication and a specified client identifier.- Parameters:
uri- The URI of the token endpoint. May benullif thetoHTTPRequest()method will not be used.authzGrant- The authorisation grant. Must not benull.scope- The requested scope,nullif not specified.
-
TokenRequest
Creates a new token request, without client authentication and a specified client identifier.- Parameters:
uri- The URI of the token endpoint. May benullif thetoHTTPRequest()method will not be used.authzGrant- The authorisation grant. Must not benull.
-
-
Method Details
-
getAuthorizationGrant
Returns the authorisation grant.- Returns:
- The authorisation grant.
-
getScope
Returns the requested scope.- Returns:
- The requested scope,
nullif not specified.
-
getAuthorizationDetails
Returns the Rich Authorisation Request (RAR) details.- Returns:
- The authorisation details,
nullif not specified.
-
getResources
Returns the resource server URI.- Returns:
- The resource URI(s),
nullif not specified.
-
getExistingGrant
Returns the existing refresh token for incremental authorisation of a public client,nullif not specified.- Returns:
- The existing grant,
nullif not specified.
-
getCustomParameters
Returns the additional custom parameters included in the request body.Example:
resource=http://xxxxxx/PartyOData
- Returns:
- The additional custom parameters as an unmodifiable map, empty map if none.
-
getCustomParameter
Returns the specified custom parameter included in the request body.- Parameters:
name- The parameter name. Must not benull.- Returns:
- The parameter value(s),
nullif not specified.
-
toHTTPRequest
Description copied from interface:RequestReturns the matching HTTP request.- Returns:
- The HTTP request.
-
parse
Parses a token request from the specified HTTP request.- Parameters:
httpRequest- The HTTP request. Must not benull.- Returns:
- The token request.
- Throws:
ParseException- If the HTTP request couldn't be parsed to a token request.
-