Advertisement
ballchaichana

Test_OneBox

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