/* * oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text. * * Copyright (c) 2014, Gluu */ package org.xdi.oxauth.client; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.codehaus.jettison.json.JSONException; import org.codehaus.jettison.json.JSONObject; import org.jboss.resteasy.client.ClientResponse; import org.xdi.oxauth.model.common.TokenType; import org.xdi.oxauth.model.token.TokenErrorResponseType; /** * Represents a token response received from the authorization server. * * @author Javier Rojas Blum Date: 10.19.2011 */ public class TokenResponse extends BaseResponseWithErrors<TokenErrorResponseType> { private static final Logger LOG = Logger.getLogger(TokenResponse.class); private String accessToken; private TokenType tokenType; private Integer expiresIn; private String refreshToken; private String scope; private String idToken; public TokenResponse() { } /** * Constructs a token response. * * @param clientResponse The response */ public TokenResponse(ClientResponse<String> clientResponse) { super(clientResponse); } @Override public TokenErrorResponseType fromString(String p_str) { return TokenErrorResponseType.fromString(p_str); } public void injectDataFromJson() { injectDataFromJson(entity); } @Override public void injectDataFromJson(String p_json) { if (StringUtils.isNotBlank(entity)) { try { JSONObject jsonObj = new JSONObject(entity); if (jsonObj.has("access_token")) { setAccessToken(jsonObj.getString("access_token")); } if (jsonObj.has("token_type")) { setTokenType(TokenType.fromString(jsonObj.getString("token_type"))); } if (jsonObj.has("expires_in")) { setExpiresIn(jsonObj.getInt("expires_in")); } if (jsonObj.has("refresh_token")) { setRefreshToken(jsonObj.getString("refresh_token")); } if (jsonObj.has("scope")) { setScope(jsonObj.getString("scope")); } if (jsonObj.has("id_token")) { setIdToken(jsonObj.getString("id_token")); } } catch (JSONException e) { LOG.error(e.getMessage(), e); } } } /** * Returns the access token issued by the authorization server. * * @return The access token issued by the authorization server. */ public String getAccessToken() { return accessToken; } /** * Sets the access token issued by the authorization server. * * @param accessToken The access token issued by the authorization server. */ public void setAccessToken(String accessToken) { this.accessToken = accessToken; } /** * Returns the type of the token issued. Value is case insensitive. * * @return The type of the token issued. */ public TokenType getTokenType() { return tokenType; } /** * Sets the type of the token issued. Value is case insensitive. * * @param tokenType The type of the token issued. */ public void setTokenType(TokenType tokenType) { this.tokenType = tokenType; } /** * Returns the lifetime in seconds of the access token. * * @return The lifetime in seconds of the access token. */ public Integer getExpiresIn() { return expiresIn; } /** * Sets the lifetime in seconds of the access token. * * @param expiresIn The lifetime in seconds of the access token. */ public void setExpiresIn(Integer expiresIn) { this.expiresIn = expiresIn; } /** * Returns the refresh token which can be used to obtain new access tokens * using the same authorization grant. * * @return The refresh token. */ public String getRefreshToken() { return refreshToken; } /** * Sets the refresh token which can be used to obtain new access tokens * using the same authorization grant. * * @param refreshToken The refresh token. */ public void setRefreshToken(String refreshToken) { this.refreshToken = refreshToken; } /** * Returns the scope of the access token. * * @return The scope of the access token. */ public String getScope() { return scope; } /** * Sets the scope of the access token. * * @param scope The scope of the access token. */ public void setScope(String scope) { this.scope = scope; } /** * Gets the value of the id token. * * @return The id token. */ public String getIdToken() { return idToken; } /** * Sets the value of the id token. * * @param idToken The id token. */ public void setIdToken(String idToken) { this.idToken = idToken; } }