/* See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* Esri Inc. licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.esri.gpt.agp.client;
import org.json.JSONObject;
/**
* A request for a security token.
*/
public class AgpTokenRequest {
/** constructors ============================================================ */
/** Default constructor. */
public AgpTokenRequest() {
super();
}
/** methods ================================================================= */
/**
* Executes a generateToken request.
* @param connection the connection
* @param criteria the criteria
* @return the token
* @throws Exception if an exception occurs
*/
public AgpToken generateToken(AgpConnection connection, AgpTokenCriteria criteria)
throws Exception {
// prepare the request
String sUrl = connection.makeGenerateTokenUrl();
String sType = "application/x-www-form-urlencoded";
StringBuilder params = new StringBuilder("f=json");
criteria.appendURLParameters(params);
AgpProperties hdr = new AgpProperties();
hdr.add(new AgpProperty("Referer",criteria.getReferer()));
// execute the request
AgpClient client = connection.ensureClient();
JSONObject jso = client.executeJsonRequest(sUrl,hdr,params,sType);
// parse the response
AgpToken token = new AgpToken();
token.parseResponse(jso);
token.setReferer(criteria.getReferer());
return token;
}
}