/*
* Copyright (c) 2008-2016 Computer Network Information Center (CNIC), Chinese Academy of Sciences.
*
* This file is part of Duckling project.
*
* Licensed 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 cn.vlabs.duckling.ca.action;
import java.io.IOException;
import java.util.Map;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.mime.MultipartEntityBuilder;
public class GetKeyByDnAction implements HttpAction {
public GetKeyByDnAction() throws IOException {
}
private MultipartEntityBuilder buildForm(Map<String, String> context)
throws IOException {
String xsrfToken=context.get("xsrfToken");
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.addTextBody("name_3", "DN")
.addTextBody("name_5", "KEY")
.addTextBody("name_1", "CN")
.addTextBody("cmd", "search")
.addTextBody("dataType", "CERTIFICATE")
.addTextBody("name_4", "ROLE")
.addTextBody("pcounter", "5")
.addTextBody("xsrf_protection_token", xsrfToken)
.addTextBody("name_2", "emailAddress")
.addTextBody("value_1", "")
.addTextBody("value_2", "")
.addTextBody("value_3", context.get(DN))
.addTextBody("value_4", "")
.addTextBody("value_5", "")
;
return builder;
}
@Override
public ActionResult execute(HttpClient httpClient, Map<String, String> context)
throws IOException {
String baseUrl = context.get(BASE_URL);
MultipartEntityBuilder builder = buildForm(context);
HttpPost post = new HttpPost(baseUrl + "/cgi-bin/pki/pub/pki");
// try {
// post.setEntity(builder.build());
// HttpResponse response = httpClient.execute(post);
// if (response.getStatusLine().getStatusCode() == 200) {
// HttpEntity entity = response.getEntity();
// String str=EntityUtils.toString(entity, "utf-8");
// System.out.println(str);
// }
// } finally {
// post.releaseConnection();
// }
post.setEntity(builder.build());
HttpResponse response = httpClient.execute(post);
ActionResult result=new ActionResult(response);
post.releaseConnection();
return result;
}
}