Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package th.in.oneauth.servlet;
- import java.io.BufferedReader;
- import java.io.File;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.net.MalformedURLException;
- import java.nio.charset.StandardCharsets;
- import java.nio.file.Files;
- import java.nio.file.Path;
- import java.nio.file.Paths;
- import java.util.Random;
- import javax.servlet.ServletException;
- import javax.servlet.annotation.WebServlet;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import javax.servlet.http.HttpSession;
- import org.apache.commons.lang3.StringUtils;
- import org.apache.http.HttpEntity;
- import org.apache.http.HttpResponse;
- import org.apache.http.client.HttpClient;
- import org.apache.http.client.methods.HttpPost;
- import org.apache.http.client.utils.URIBuilder;
- import org.apache.http.entity.mime.MultipartEntityBuilder;
- import org.apache.http.impl.client.HttpClientBuilder;
- import com.google.gson.JsonObject;
- import com.google.gson.JsonParser;
- @WebServlet("/uploadbrowse")
- public class SelectServlet extends HttpServlet {
- private static final long serialVersionUID = 1L;
- public static final String SIGNING_URL = "dashboard.jsp";
- private static final String UPLOAD_FOLDER = "C:\\temp\\";
- private static String PARAM_EMAIL = "chaichana.si@one.th";
- private static String PARAM_SELECT_API = "upload";
- protected void doPost(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- String FilePDF = request.getSession(false).getAttribute(SigningServlet.SESSION_PDF_DATA).toString();
- String FileLocation = request.getSession(false).getAttribute(SigningServlet.PARAM_FILE_LOCATION).toString();
- byte[] signPDF = FilePDF.getBytes(StandardCharsets.UTF_8);
- // String filename = "Signing" + new Random().nextInt(100000) + ".pdf";
- // writeBytesToFileNio(signPDF, UPLOAD_FOLDER + filename);
- // ÍÂèÒÅ×Áàà¡éfrom json
- // try {
- // JsonObject authToken = (JsonObject) request.getSession()
- // .getAttribute(LoginServlet.SESSION_PARAM_ONEID_AUTH);
- // PARAM_EMAIL = authToken.get("thai_email").getAsString();
- // } catch (Exception e) {
- // e.printStackTrace();
- // LogoutServlet.doLogout(request, response, "System error !! Please contact system administrator!");
- // }
- try {
- HttpSession session = request.getSession();
- String selectAPI = session.getAttribute("getbutton").toString();
- PARAM_SELECT_API = selectAPI;
- } catch (Exception e) {
- e.printStackTrace();
- LogoutServlet.doLogout(request, response, "can not get param select api");
- }
- //
- try {
- System.out.println("test::::"+PARAM_SELECT_API);
- switch (PARAM_SELECT_API) {
- case "onebox":
- UploadToOneBox( FileLocation, PARAM_EMAIL);
- break;
- case "upload":
- response.setContentType("application/pdf");
- response.addHeader("Content-Disposition", "attachment; filename=signDocument.pdf");
- response.setContentLength(signPDF.length);
- response.getOutputStream().write(signPDF);
- break;
- }
- } catch (MalformedURLException e) {
- e.printStackTrace();
- LogoutServlet.doLogout(request, response, "client cannot parse the URL correctly!" + e.getMessage());
- } catch (Exception e) {
- e.printStackTrace();
- LogoutServlet.doLogout(request, response, e.getMessage());
- }
- String Del = FileLocation;
- Files.delete(Paths.get(Del));
- System.out.println("KUY");
- }
- public static void Upload(byte[] bFile) throws Exception {
- }
- private static void writeBytesToFileNio(byte[] bFile, String fileDest) {
- try {
- Path path = Paths.get(fileDest);
- Files.write(path, bFile);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- public void UploadToOneBox(String FileLocation, String email) throws Exception {
- String RefectToken = null;
- try {
- RefectToken = this.getToken(email);
- if (StringUtils.isEmpty(RefectToken))
- throw new NullPointerException("Cannot get refect tokent data");
- } catch (Exception e) {
- e.printStackTrace();
- System.out.println(e.getMessage());
- }
- BufferedReader br = null;
- String output;
- StringBuilder responseBuilder = null;
- HttpClient httpClient = HttpClientBuilder.create().build();
- URIBuilder uriBuilder = new URIBuilder("https://box.one.th/app/api/upload");
- HttpPost request = new HttpPost(uriBuilder.build());
- request.addHeader("Authorization", RefectToken);
- HttpEntity entity = MultipartEntityBuilder.create().addTextBody("appkey", "EsignKeY")
- .addBinaryBody("file", new File( FileLocation)).build();
- request.setEntity(entity);
- HttpResponse response = httpClient.execute(request);
- int responseCode = response.getStatusLine().getStatusCode();
- if (responseCode == 201 || responseCode == 200) {
- br = new BufferedReader(new InputStreamReader((response.getEntity().getContent())));
- responseBuilder = new StringBuilder();
- while ((output = br.readLine()) != null) {
- responseBuilder.append(output);
- }
- System.out.println(responseBuilder.toString());
- } else {
- System.out.println("Failed : HTTP error code : " + response.getStatusLine().getStatusCode());
- }
- }
- private String getToken(String email) throws Exception {
- // System.setProperty("javax.net.debug","all");
- BufferedReader br = null;
- String output;
- StringBuilder responseBuilder = null;
- HttpClient httpClient = HttpClientBuilder.create().build();
- URIBuilder uriBuilder = new URIBuilder("https://box.one.th/app/api/genAccessToken");
- HttpPost request = new HttpPost(uriBuilder.build());
- request.addHeader("Authorization",
- "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhcHBuYW1lIjoiZS1zaWduIn0.hjTLi2r-eKlTz9HafSCo5BSBsEdtK7cNUDGZnNOX4vY");
- HttpEntity entity = MultipartEntityBuilder.create().addTextBody("client_email", email)
- .addTextBody("service_name", "upload").build();
- request.setEntity(entity);
- HttpResponse response = httpClient.execute(request);
- int responseCode = response.getStatusLine().getStatusCode();
- if (responseCode == 201 || responseCode == 200) {
- br = new BufferedReader(new InputStreamReader((response.getEntity().getContent())));
- responseBuilder = new StringBuilder();
- while ((output = br.readLine()) != null) {
- responseBuilder.append(output);
- }
- } else {
- System.out.println("Failed : HTTP error code : " + response.getStatusLine().getStatusCode());
- }
- System.out.println(responseBuilder.toString());
- String RefectToken = responseBuilder.toString();
- JsonObject jsonObject = new JsonParser().parse(RefectToken).getAsJsonObject();
- String token = jsonObject.get("data").getAsJsonObject().get("token").getAsString();
- return token;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement