/*
* 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 java.util.HashMap;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.xdi.oxauth.model.common.AuthorizationMethod;
/**
* Represents a User Info request to send to the authorization server.
*
* @author Javier Rojas Blum Date: 11.28.2011
*/
public class UserInfoRequest extends BaseRequest {
private String accessToken;
/**
* Constructs a User Info Request.
*
* @param accessToken The access token obtained from the oxAuth authorization request.
*/
public UserInfoRequest(String accessToken) {
this.accessToken = accessToken;
setAuthorizationMethod(AuthorizationMethod.AUTHORIZATION_REQUEST_HEADER_FIELD);
}
/**
* Returns the access token obtained from oxAuth authorization request.
*
* @return The access token obtained from oxAuth authorization request.
*/
public String getAccessToken() {
return accessToken;
}
/**
* Sets the access token obtained from oxAuth authorization request.
*
* @param accessToken The access token obtained from oxAuth authorization request.
*/
public void setAccessToken(String accessToken) {
this.accessToken = accessToken;
}
/**
* Returns a query string with the parameters of the User Info request.
* Any <code>null</code> or empty parameter will be omitted.
*
* @return A query string of parameters.
*/
@Override
public String getQueryString() {
StringBuilder queryStringBuilder = new StringBuilder();
if (StringUtils.isNotBlank(accessToken)) {
if (getAuthorizationMethod() == AuthorizationMethod.FORM_ENCODED_BODY_PARAMETER
|| getAuthorizationMethod() == AuthorizationMethod.URL_QUERY_PARAMETER) {
queryStringBuilder.append("access_token=").append(accessToken);
}
}
return queryStringBuilder.toString();
}
/**
* Returns a collection of parameters of the user info request. Any
* <code>null</code> or empty parameter will be omitted.
*
* @return A collection of parameters.
*/
public Map<String, String> getParameters() {
Map<String, String> parameters = new HashMap<String, String>();
if (accessToken != null && !accessToken.isEmpty()) {
if (getAuthorizationMethod() == AuthorizationMethod.FORM_ENCODED_BODY_PARAMETER
|| getAuthorizationMethod() == AuthorizationMethod.URL_QUERY_PARAMETER) {
parameters.put("access_token", accessToken);
}
}
return parameters;
}
}