Advertisement
ballchaichana

temp

Aug 6th, 2018
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.62 KB | None | 0 0
  1. package th.in.oneauth.servlet;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.File;
  5. import java.io.IOException;
  6. import java.io.InputStreamReader;
  7. import java.net.MalformedURLException;
  8. import java.nio.charset.StandardCharsets;
  9. import java.nio.file.Files;
  10. import java.nio.file.Path;
  11. import java.nio.file.Paths;
  12. import java.util.Random;
  13.  
  14. import javax.servlet.ServletException;
  15. import javax.servlet.annotation.WebServlet;
  16. import javax.servlet.http.HttpServlet;
  17. import javax.servlet.http.HttpServletRequest;
  18. import javax.servlet.http.HttpServletResponse;
  19. import javax.servlet.http.HttpSession;
  20.  
  21. import org.apache.commons.lang3.StringUtils;
  22. import org.apache.http.HttpEntity;
  23. import org.apache.http.HttpResponse;
  24. import org.apache.http.client.HttpClient;
  25. import org.apache.http.client.methods.HttpPost;
  26. import org.apache.http.client.utils.URIBuilder;
  27. import org.apache.http.entity.mime.MultipartEntityBuilder;
  28. import org.apache.http.impl.client.HttpClientBuilder;
  29.  
  30. import com.google.gson.JsonObject;
  31. import com.google.gson.JsonParser;
  32.  
  33. @WebServlet("/uploadbrowse")
  34. public class SelectServlet extends HttpServlet {
  35.  
  36.     private static final long serialVersionUID = 1L;
  37.  
  38.     public static final String SIGNING_URL = "dashboard.jsp";
  39.  
  40.     private static final String UPLOAD_FOLDER = "C:\\temp\\";
  41.     private static String PARAM_EMAIL = "chaichana.si@one.th";
  42.     private static String PARAM_SELECT_API = "upload";
  43.    
  44.  
  45.     protected void doPost(HttpServletRequest request, HttpServletResponse response)
  46.             throws ServletException, IOException {
  47.  
  48.       String FilePDF = request.getSession(false).getAttribute(SigningServlet.SESSION_PDF_DATA).toString();
  49.         String FileLocation = request.getSession(false).getAttribute(SigningServlet.PARAM_FILE_LOCATION).toString();
  50.  
  51.       byte[] signPDF = FilePDF.getBytes(StandardCharsets.UTF_8);
  52. //      String filename = "Signing" + new Random().nextInt(100000) + ".pdf";
  53. //      writeBytesToFileNio(signPDF, UPLOAD_FOLDER + filename);
  54.  
  55.         // ÍÂèÒÅ×Áàà¡éfrom json
  56. //        try {
  57. //            JsonObject authToken = (JsonObject) request.getSession()
  58. //                    .getAttribute(LoginServlet.SESSION_PARAM_ONEID_AUTH);
  59. //            PARAM_EMAIL = authToken.get("thai_email").getAsString();
  60. //        } catch (Exception e) {
  61. //            e.printStackTrace();
  62. //            LogoutServlet.doLogout(request, response, "System error !! Please contact system administrator!");
  63. //        }
  64.         try {
  65.             HttpSession session = request.getSession();
  66.             String selectAPI = session.getAttribute("getbutton").toString();
  67.             PARAM_SELECT_API = selectAPI;
  68.            
  69.            
  70.  
  71.         } catch (Exception e) {
  72.             e.printStackTrace();
  73.             LogoutServlet.doLogout(request, response, "can not get param select api");
  74.         }
  75. //
  76.         try {
  77.             System.out.println("test::::"+PARAM_SELECT_API);
  78.  
  79.             switch (PARAM_SELECT_API) {
  80.             case "onebox":
  81.                 UploadToOneBox( FileLocation, PARAM_EMAIL);
  82.                 break;
  83.             case "upload":
  84.                 response.setContentType("application/pdf");
  85.                 response.addHeader("Content-Disposition", "attachment; filename=signDocument.pdf");
  86.                 response.setContentLength(signPDF.length);
  87.                 response.getOutputStream().write(signPDF);
  88.                 break;
  89.             }
  90.  
  91.         } catch (MalformedURLException e) {
  92.             e.printStackTrace();
  93.             LogoutServlet.doLogout(request, response, "client cannot parse the URL correctly!" + e.getMessage());
  94.         } catch (Exception e) {
  95.             e.printStackTrace();
  96.             LogoutServlet.doLogout(request, response, e.getMessage());
  97.         }
  98.         String Del = FileLocation;
  99.         Files.delete(Paths.get(Del));
  100.         System.out.println("KUY");
  101.  
  102.     }
  103.  
  104.     public static void Upload(byte[] bFile) throws Exception {
  105.  
  106.     }
  107.  
  108.     private static void writeBytesToFileNio(byte[] bFile, String fileDest) {
  109.  
  110.         try {
  111.             Path path = Paths.get(fileDest);
  112.             Files.write(path, bFile);
  113.         } catch (IOException e) {
  114.             e.printStackTrace();
  115.         }
  116.  
  117.     }
  118.  
  119.     public void UploadToOneBox(String  FileLocation, String email) throws Exception {
  120.  
  121.         String RefectToken = null;
  122.         try {
  123.             RefectToken = this.getToken(email);
  124.             if (StringUtils.isEmpty(RefectToken))
  125.                 throw new NullPointerException("Cannot get refect tokent data");
  126.         } catch (Exception e) {
  127.             e.printStackTrace();
  128.             System.out.println(e.getMessage());
  129.         }
  130.  
  131.         BufferedReader br = null;
  132.         String output;
  133.         StringBuilder responseBuilder = null;
  134.  
  135.         HttpClient httpClient = HttpClientBuilder.create().build();
  136.         URIBuilder uriBuilder = new URIBuilder("https://box.one.th/app/api/upload");
  137.         HttpPost request = new HttpPost(uriBuilder.build());
  138.         request.addHeader("Authorization", RefectToken);
  139.  
  140.         HttpEntity entity = MultipartEntityBuilder.create().addTextBody("appkey", "EsignKeY")
  141.                 .addBinaryBody("file", new File( FileLocation)).build();
  142.         request.setEntity(entity);
  143.         HttpResponse response = httpClient.execute(request);
  144.         int responseCode = response.getStatusLine().getStatusCode();
  145.         if (responseCode == 201 || responseCode == 200) {
  146.             br = new BufferedReader(new InputStreamReader((response.getEntity().getContent())));
  147.             responseBuilder = new StringBuilder();
  148.             while ((output = br.readLine()) != null) {
  149.                 responseBuilder.append(output);
  150.             }
  151.             System.out.println(responseBuilder.toString());
  152.         } else {
  153.             System.out.println("Failed : HTTP error code : " + response.getStatusLine().getStatusCode());
  154.         }
  155.     }
  156.  
  157.     private String getToken(String email) throws Exception {
  158.         // System.setProperty("javax.net.debug","all");
  159.  
  160.         BufferedReader br = null;
  161.         String output;
  162.         StringBuilder responseBuilder = null;
  163.  
  164.         HttpClient httpClient = HttpClientBuilder.create().build();
  165.         URIBuilder uriBuilder = new URIBuilder("https://box.one.th/app/api/genAccessToken");
  166.         HttpPost request = new HttpPost(uriBuilder.build());
  167.         request.addHeader("Authorization",
  168.                 "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhcHBuYW1lIjoiZS1zaWduIn0.hjTLi2r-eKlTz9HafSCo5BSBsEdtK7cNUDGZnNOX4vY");
  169.  
  170.         HttpEntity entity = MultipartEntityBuilder.create().addTextBody("client_email", email)
  171.                 .addTextBody("service_name", "upload").build();
  172.         request.setEntity(entity);
  173.         HttpResponse response = httpClient.execute(request);
  174.         int responseCode = response.getStatusLine().getStatusCode();
  175.         if (responseCode == 201 || responseCode == 200) {
  176.             br = new BufferedReader(new InputStreamReader((response.getEntity().getContent())));
  177.             responseBuilder = new StringBuilder();
  178.             while ((output = br.readLine()) != null) {
  179.                 responseBuilder.append(output);
  180.             }
  181.  
  182.         } else {
  183.             System.out.println("Failed : HTTP error code : " + response.getStatusLine().getStatusCode());
  184.         }
  185.         System.out.println(responseBuilder.toString());
  186.  
  187.         String RefectToken = responseBuilder.toString();
  188.  
  189.         JsonObject jsonObject = new JsonParser().parse(RefectToken).getAsJsonObject();
  190.  
  191.         String token = jsonObject.get("data").getAsJsonObject().get("token").getAsString();
  192.  
  193.         return token;
  194.  
  195.     }
  196. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement