public class DeviceAuthorizationResponse extends ApiResponse
/api/device/authorization API.
Authlete's /api/device/authorization API returns JSON which can
be mapped to this class. The authorization server implementation should
retrieve the value of action from the response and take the
following steps according to the value.
OK
When the value of action is OK, it means that the device
authorization request from the client application is valid.
The authorization server implementation should generate a response to the
client application with 200 OK and application/json.
The getResponseContent() method returns a JSON string which can
be used as the entity body of the response.
The following illustrates the response which the authorization server implementation should generate and return to the client application.
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store
Pragma: no-cache
(The value returned from getResponseContent())
BAD_REQUEST
When the value of action is BAD_REQUEST, it means that the
device authorization request from the client application was wrong.
The authorization server implementation should generate a response to the
client application with 400 Bad Request and application/json.
The getResponseContent() method returns a JSON string which
describes the error, so it can be used as the entity body of the response.
The following illustrates the response which the authorization server implementation should generate and return to the client application.
HTTP/1.1 400 Bad Request
Content-Type: application/json
Cache-Control: no-store
Pragma: no-cache
(The value returned from getResponseContent())
UNAUTHORIZED
When the value of action is UNAUTHORIZED, it means that
client authentication of the device authorization request failed.
The authorization server implementation should generate a response to the
client application with 401 Unauthorized and application/json.
The getResponseContent() method returns a JSON string which
describes the error, so it can be used as the entity body of the response.
The following illustrates the response which the authorization server implementation should generate and return to the client application.
HTTP/1.1 401 Unauthorized
WWW-Authenticate: (challenge)
Content-Type: application/json
Cache-Control: no-store
Pragma: no-cache
(The value returned from getResponseContent())
INTERNAL_SERVER_ERROR
When the value of action is INTERNAL_SERVER_ERROR, it means
that the API call from the authorization server implementation was wrong or
that an error occurred in Authlete.
In either case, from a viewpoint of the client application, it is an error
on the server side. Therefore, the authorization server implementation
should generate a response to the client application with
500 Internal Server Error and application/json.
The getResponseContent() method returns a JSON string which
describes the error, so it can be used as the entity body of the response.
The following illustrates the response which the authorization server implementation should generate and return to the client application.
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Cache-Control: no-store
Pragma: no-cache
(The value returned from getResponseContent())
| Modifier and Type | Class and Description |
|---|---|
static class |
DeviceAuthorizationResponse.Action
The next action that the authorization server implementation should take.
|
| Constructor and Description |
|---|
DeviceAuthorizationResponse() |
| Modifier and Type | Method and Description |
|---|---|
String[] |
getAcrs()
Get the list of ACR values requested by the device authorization
request.
|
DeviceAuthorizationResponse.Action |
getAction()
Get the next action that the implementation of the device authorization
endpoint should take.
|
AuthzDetails |
getAuthorizationDetails()
Get the authorization details.
|
String[] |
getClaimNames()
Get the names of the claims which were requested indirectly via some
special scopes.
|
Pair[] |
getClientAttributes()
Get the attributes of the client.
|
ClientAuthMethod |
getClientAuthMethod()
Get the client authentication method that should be performed at the
device authorization endpoint.
|
long |
getClientId()
Get the client ID of the client application that has made the device
authorization request.
|
String |
getClientIdAlias()
Get the client ID alias of the client application that has made the
device authorization request.
|
String |
getClientIdentifier()
Get the client identifier used in the device authorization request.
|
String |
getClientName()
Get the name of the client application which has made the device
authorization request.
|
String |
getDeviceCode()
Get the device verification code.
|
DynamicScope[] |
getDynamicScopes()
Get the dynamic scopes which the client application requested
by the
scope request parameter. |
int |
getExpiresIn()
Get the duration of the issued device verification code and end-user
verification code in seconds.
|
GMAction |
getGmAction()
Get the value of the
grant_management_action request parameter. |
Grant |
getGrant()
Get the content of the grant which is identified by the
grant_id
request parameter. |
String |
getGrantId()
Get the value of the
grant_id request parameter. |
String |
getGrantSubject()
Get the subject of the user who has given the grant which is identified
by the
grant_id request parameter. |
int |
getInterval()
Get the minimum amount of time in seconds that the client must wait for
between polling requests to the token endpoint.
|
URI[] |
getResources()
Get the resources specified by the
resource request parameters. |
String |
getResponseContent()
Get the content that can be used to generate a response to the client
application.
|
Scope[] |
getScopes()
Get the scopes requested by the device authorization request.
|
Pair[] |
getServiceAttributes()
Get the attributes of the service that the client application belongs to.
|
String |
getUserCode()
Get the end-user verification code.
|
URI |
getVerificationUri()
Get the end-user verification URI.
|
URI |
getVerificationUriComplete()
Get the end-user verification URI that includes the end-user verification
code.
|
String[] |
getWarnings()
Get the warnings raised during processing the device authorization
request.
|
boolean |
isClientIdAliasUsed()
Get the flag which indicates whether the client ID alias was used in
the device authorization request.
|
DeviceAuthorizationResponse |
setAcrs(String[] acrs)
Set the list of ACR values requested by the device authorization
request.
|
DeviceAuthorizationResponse |
setAction(DeviceAuthorizationResponse.Action action)
Set the next action that the implementation of the device authorization
endpoint should take.
|
DeviceAuthorizationResponse |
setAuthorizationDetails(AuthzDetails details)
Set the authorization details.
|
DeviceAuthorizationResponse |
setClaimNames(String[] names)
Set the names of the claims which were requested indirectly via some
special scopes.
|
DeviceAuthorizationResponse |
setClientAttributes(Pair[] attributes)
Set the attributes of the client.
|
DeviceAuthorizationResponse |
setClientAuthMethod(ClientAuthMethod method)
Set the client authentication method that should be performed at the
device authorization endpoint.
|
DeviceAuthorizationResponse |
setClientId(long clientId)
Set the client ID of the client application that has made the device
authorization request.
|
DeviceAuthorizationResponse |
setClientIdAlias(String alias)
Set the client ID alias of the client application that has made the
device authorization request.
|
DeviceAuthorizationResponse |
setClientIdAliasUsed(boolean used)
Set the flag which indicates whether the client ID alias was used in
the device authorization request.
|
DeviceAuthorizationResponse |
setClientName(String name)
Set the name of the client application which has made the device
authorization request.
|
DeviceAuthorizationResponse |
setDeviceCode(String code)
Set the device verification code.
|
DeviceAuthorizationResponse |
setDynamicScopes(DynamicScope[] dynamicScopes)
Set the dynamic scopes which the client application requested
by the
scope request parameter. |
DeviceAuthorizationResponse |
setExpiresIn(int expiresIn)
Set the duration of the issued device verification code and end-user
verification code in seconds.
|
DeviceAuthorizationResponse |
setGmAction(GMAction action)
Set the value of the
grant_management_action request parameter. |
DeviceAuthorizationResponse |
setGrant(Grant grant)
Set the content of the grant which is identified by the
grant_id
request parameter. |
DeviceAuthorizationResponse |
setGrantId(String grantId)
Set the value of the
grant_id request parameter. |
DeviceAuthorizationResponse |
setGrantSubject(String subject)
Set the subject of the user who has given the grant which is identified
by the
grant_id request parameter. |
DeviceAuthorizationResponse |
setInterval(int interval)
Set the minimum amount of time in seconds that the client must wait for
between polling requests to the token endpoint.
|
DeviceAuthorizationResponse |
setResources(URI[] resources)
Set the resources specified by the
resource request parameters. |
DeviceAuthorizationResponse |
setResponseContent(String responseContent)
Set the content that can be used to generate a response to the client
application.
|
DeviceAuthorizationResponse |
setScopes(Scope[] scopes)
Set the scopes requested by the device authorization request.
|
DeviceAuthorizationResponse |
setServiceAttributes(Pair[] attributes)
Set the attributes of the service that the client application belongs to.
|
DeviceAuthorizationResponse |
setUserCode(String code)
Set the end-user verification code.
|
DeviceAuthorizationResponse |
setVerificationUri(URI uri)
Set the end-user verification URI.
|
DeviceAuthorizationResponse |
setVerificationUriComplete(URI uri)
Set the end-user verification URI that includes the end-user verification
code.
|
DeviceAuthorizationResponse |
setWarnings(String[] warnings)
Set the warnings raised during processing the device authorization
request.
|
getResultCode, getResultMessage, setResultCode, setResultMessagepublic DeviceAuthorizationResponse.Action getAction()
public DeviceAuthorizationResponse setAction(DeviceAuthorizationResponse.Action action)
action - The next action.this object.public String getResponseContent()
public DeviceAuthorizationResponse setResponseContent(String responseContent)
responseContent - The content of a response to the client.this object.public long getClientId()
public DeviceAuthorizationResponse setClientId(long clientId)
clientId - The client ID of the client application.this object.public String getClientIdAlias()
public DeviceAuthorizationResponse setClientIdAlias(String alias)
alias - The client ID alias of the client application.this object.public boolean isClientIdAliasUsed()
true if the client ID alias was used in the request.public DeviceAuthorizationResponse setClientIdAliasUsed(boolean used)
used - true to indicate that the client ID alias was used in
the request.this object.public String getClientIdentifier()
When isClientIdAliasUsed() returns true, this method
returns the same value as getClientIdAlias() does. Otherwise,
this method returns the string representation of the value returned
from getClientId().
public String getClientName()
public DeviceAuthorizationResponse setClientName(String name)
name - The name of the client application.this object.public ClientAuthMethod getClientAuthMethod()
If the client could not be identified by the information in the request,
this method returns null.
public DeviceAuthorizationResponse setClientAuthMethod(ClientAuthMethod method)
method - The client authentication method that should be performed at
the device authorization endpoint.this object.public Scope[] getScopes()
Basically, this method returns the value of the "scope" request
parameter in the device authorization request. However, because
unregistered scopes are dropped on Authlete side, if the "scope"
request parameter contains unknown scopes, the list returned by this
method becomes different from the value of the "scope" request
parameter.
Note that Scope.getDescription() method and
Scope.getDescriptions() method of each element (Scope
instance) in the array returned from this method always return
null even if descriptions of the scopes are registered.
public DeviceAuthorizationResponse setScopes(Scope[] scopes)
scopes - The requested scopes.this object.public DynamicScope[] getDynamicScopes()
scope request parameter. See the description of
DynamicScope for details.DynamicScopepublic DeviceAuthorizationResponse setDynamicScopes(DynamicScope[] dynamicScopes)
scope request parameter. See the description of
DynamicScope for details.dynamicScopes - The list of dynamic scopes.this object.DynamicScopepublic String[] getClaimNames()
This method always returns null if the scope request
parameter of the device authorization request does not include the
openid scope even if special scopes (such as profile)
are included in the request (unless the openid scope is included
in the default set of scopes which is used when the scope
request parameter is omitted).
public DeviceAuthorizationResponse setClaimNames(String[] names)
names - The names of the requested claims.this object.public String[] getAcrs()
Basically, this method returns the value of the "acr_values"
request parameter in the device authorization request. However,
because unsupported ACR values are dropped on Authlete side, if the
"acr_values" request parameter contains unrecognized ACR
values, the list returned by this method becomes different from the
value of the "acr_values" request parameter.
If the request does not include the acr_values request
parameter, the value of the default_acr_values client metadata
is used.
public DeviceAuthorizationResponse setAcrs(String[] acrs)
acrs - The list of requested ACR values.this object.public String getDeviceCode()
device_code property in the response to the client.public DeviceAuthorizationResponse setDeviceCode(String code)
device_code property in the response to the client.code - The device verification code.this object.public String getUserCode()
user_code property in the response to the client.public DeviceAuthorizationResponse setUserCode(String code)
user_code property in the response to the client.code - The end-user verification code.this object.public URI getVerificationUri()
verification_uri property in the response to the client.public DeviceAuthorizationResponse setVerificationUri(URI uri)
verification_uri property in the response to the client.uri - The end-user verification URI.this object.public URI getVerificationUriComplete()
verification_uri_complete property
in the response to the client.public DeviceAuthorizationResponse setVerificationUriComplete(URI uri)
verification_uri_complete property
in the response to the client.uri - The end-user verification URI that includes the end-user
verification code.this object.public int getExpiresIn()
expires_in
property in the response to the client.public DeviceAuthorizationResponse setExpiresIn(int expiresIn)
expires_in
property in the response to the client.expiresIn - The duration of the issued device verification code and end-user
verification code in seconds.this object.public int getInterval()
interval property in the response to the client.public DeviceAuthorizationResponse setInterval(int interval)
interval property in the response to the client.interval - The minimum amount of time in seconds between polling requests.this object.public String[] getWarnings()
null.public DeviceAuthorizationResponse setWarnings(String[] warnings)
warnings - Warnings.this object.public URI[] getResources()
resource request parameters.
See "Resource Indicators for OAuth 2.0" for details.public DeviceAuthorizationResponse setResources(URI[] resources)
resource request parameters.
See "Resource Indicators for OAuth 2.0" for details.resources - Target resources.this object.public AuthzDetails getAuthorizationDetails()
"authorization_details" request parameter which is defined in
"OAuth 2.0 Rich Authorization Requests".public DeviceAuthorizationResponse setAuthorizationDetails(AuthzDetails details)
"authorization_details" request parameter which is defined in
"OAuth 2.0 Rich Authorization Requests".details - Authorization details.this object.public GMAction getGmAction()
grant_management_action request parameter.
The grant_management_action request parameter is defined in
Grant
Management for OAuth 2.0, which is supported by Authlete 2.3 and
newer versions.
null or one of
CREATE, REPLACE
and UPDATE.public DeviceAuthorizationResponse setGmAction(GMAction action)
grant_management_action request parameter.
The grant_management_action request parameter is defined in
Grant
Management for OAuth 2.0, which is supported by Authlete 2.3 and
newer versions.
action - A grant management action. null or one of
CREATE, REPLACE
and UPDATE.this object.public String getGrantId()
grant_id request parameter.
The grant_id request parameter is defined in
Grant
Management for OAuth 2.0, which is supported by Authlete 2.3 and
newer versions.
public DeviceAuthorizationResponse setGrantId(String grantId)
grant_id request parameter.
The grant_id request parameter is defined in
Grant
Management for OAuth 2.0, which is supported by Authlete 2.3 and
newer versions.
grantId - A grant ID.this object.public String getGrantSubject()
grant_id request parameter.
Authlete 2.3 and newer versions support Grant Management
for OAuth 2.0. An authorization request may contain a grant_id
request parameter which is defined in the specification. If the value of
the request parameter is valid, getGrantSubject() will return
the subject of the user who has given the grant to the client application.
Authorization server implementations may use the value returned from
getGrantSubject() in order to determine the user to authenticate.
The user your system will authenticate during the authorization process
(or has already authenticated) may be different from the user of the
grant. The first implementer's draft of "Grant Management for OAuth 2.0"
does not mention anything about the case, so the behavior in the case is
left to implementations. Authlete will not perform the grant management
action when the subject passed to Authlete does not match the
user of the grant.
public DeviceAuthorizationResponse setGrantSubject(String subject)
grant_id request parameter.
Authlete 2.3 and newer versions support Grant Management
for OAuth 2.0. An authorization request may contain a grant_id
request parameter which is defined in the specification. If the value of
the request parameter is valid, getGrantSubject() will return
the subject of the user who has given the grant to the client application.
Authorization server implementations may use the value returned from
getGrantSubject() in order to determine the user to authenticate.
The user your system will authenticate during the authorization process
(or has already authenticated) may be different from the user of the
grant. The first implementer's draft of "Grant Management for OAuth 2.0"
does not mention anything about the case, so the behavior in the case is
left to implementations. Authlete will not perform the grant management
action when the subject passed to Authlete does not match the
user of the grant.
subject - The subject of the user who has given the grant.this object.public Grant getGrant()
grant_id
request parameter.
The user your system will authenticate during the authorization process (or has already authenticated) may be different from the user of the grant. Be careful when your system displays the content of the grant.
public DeviceAuthorizationResponse setGrant(Grant grant)
grant_id
request parameter.
The user your system will authenticate during the authorization process (or has already authenticated) may be different from the user of the grant. Be careful when your system displays the content of the grant.
grant - The content of the grant.this object.public Pair[] getServiceAttributes()
This property is available since Authlete 2.2.
public DeviceAuthorizationResponse setServiceAttributes(Pair[] attributes)
This property is available since Authlete 2.2.
attributes - The attributes of the service.this object.public Pair[] getClientAttributes()
This property is available since Authlete 2.2.
public DeviceAuthorizationResponse setClientAttributes(Pair[] attributes)
This property is available since Authlete 2.2.
attributes - The attributes of the client.this object.Copyright © 2022. All rights reserved.