Advertisement
ballchaichana

temp

Sep 17th, 2018
453
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.27 KB | None | 0 0
  1. package th.in.oneauth.servlet;
  2.  
  3. import java.io.IOException;
  4. import java.util.Date;
  5.  
  6. import javax.servlet.ServletException;
  7. import javax.servlet.annotation.WebServlet;
  8. import javax.servlet.http.HttpServlet;
  9. import javax.servlet.http.HttpServletRequest;
  10. import javax.servlet.http.HttpServletResponse;
  11.  
  12. import org.apache.commons.lang3.StringUtils;
  13. import org.bouncycastle.util.encoders.Base64;
  14.  
  15. import com.google.gson.JsonDeserializer;
  16. import com.google.gson.JsonObject;
  17. import com.google.gson.JsonParser;
  18.  
  19. import th.in.oneauthen.object.DocumentDB;
  20. import th.in.oneauthen.object.SignatureProfileDB;
  21. import th.in.oneauthen.object.UserUidDB;
  22. import th.in.oneauthen.object.DAO.DocumentDAO;
  23. import th.in.oneauthen.object.DAO.SignatureProfileDAO;
  24. import th.in.oneauthen.object.DAO.UserUidDAO;
  25. import th.in.oneauthen.util.CryptoUtil;
  26.  
  27. /**
  28.  * Servlet implementation class LoginServlet
  29.  */
  30. @WebServlet("/login")
  31. public class LoginServlet extends HttpServlet {
  32.     private static final long serialVersionUID = 1L;
  33.  
  34.     public static final String SESSION_PARAM_USER = "userSession";
  35.     public static final String SESSION_PARAM_ONEID_AUTH = "authToken";
  36.     public static final String REQUEST_PARAM_USERNAME = "username";
  37.     // public static final String REQUEST_PARAM_PASSWORD = "password";
  38.  
  39.     public static final String DASHBOARD_URL = "dashboard.jsp";
  40.     public static final String DASHBOARD_SINGING = "dashboard.jsp?reqp=signing";
  41.  
  42.     /**
  43.      * @see HttpServlet#HttpServlet()
  44.      */
  45.     public LoginServlet() {
  46.         super();
  47.         // TODO Auto-generated constructor stub
  48.     }
  49.  
  50.     /**
  51.      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
  52.      *      response)
  53.      */
  54.     protected void doGet(HttpServletRequest request, HttpServletResponse response)
  55.             throws ServletException, IOException {
  56.         // TODO Auto-generated method stub
  57.         doPost(request, response);
  58.     }
  59.  
  60.     /**
  61.      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
  62.      *      response)
  63.      */
  64.     public  void doPost(HttpServletRequest request, HttpServletResponse response)
  65.             throws ServletException, IOException {
  66.         // TODO Auto-generated method stub
  67.  
  68.         String username = request.getParameter(REQUEST_PARAM_USERNAME);
  69.         // String password = request.getParameter(REQUEST_PARAM_PASSWORD);
  70.  
  71.         String oneIdAuthToken = request.getParameter("authToken");
  72.  
  73.         System.out.println(oneIdAuthToken == null ? "" : oneIdAuthToken);
  74.  
  75.         JsonObject jsonObject = new JsonParser().parse(oneIdAuthToken).getAsJsonObject();
  76.        
  77.         String id_card_num = jsonObject.get("hash_id_card_num").getAsString();
  78.         System.out.println(id_card_num);
  79.  
  80.         String id = jsonObject.get("id").getAsString();
  81.         String email = jsonObject.get("thai_email").getAsString();
  82.         System.out.println(id);
  83.         System.out.println(email);
  84.        
  85.         JsonObject oneBoxParam = new JsonObject();
  86.         oneBoxParam.addProperty("ACTION", "OneBoxUpload");
  87.         oneBoxParam.addProperty("ID", id);
  88.  
  89.         JsonObject subObject = new JsonObject();
  90.         subObject.addProperty("EMail", email);
  91.         oneBoxParam.add("SubElement", subObject);
  92.  
  93.         System.out.println(oneBoxParam.toString());
  94.         SignatureProfileDAO a = new SignatureProfileDAO();
  95.         try {
  96.             a.remove(77);
  97.         } catch (Exception e1) {
  98.              System.out.println("kuyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy");
  99.             e1.printStackTrace();
  100.         }  
  101.  
  102.         UserUidDAO userDao = new UserUidDAO();
  103.        
  104.         UserUidDB user = null;
  105.  
  106.         if( userDao.findUsername(username) != null) {
  107.             user = userDao.findUsername(username);
  108.            
  109.         }
  110.        
  111.         System.out.println("DAO: " + user);
  112.         System.out.println("oneIdAuth: " + !(StringUtils.isEmpty(oneIdAuthToken)));
  113.  
  114.         if (StringUtils.isEmpty(oneIdAuthToken) && user == null) {
  115.             LogoutServlet.doLogout(request, response, "Login Failed!!");
  116.         } else if (!StringUtils.isEmpty(oneIdAuthToken) && user == null) {
  117.             // oneIdAuthToken != null && user == null
  118.             UserUidDB newUser = new UserUidDB();
  119.             newUser.setUserName(username);
  120.             newUser.setLastLogin(new Date());
  121.             newUser.setSamlTokenUid(oneIdAuthToken);
  122.             newUser.setIdCardUid(id_card_num);
  123.             newUser.setType("personal");
  124.             try {
  125.                 userDao.save(newUser);
  126.                 System.out.println("Login success!!");
  127.                 request.getSession().setAttribute(SESSION_PARAM_USER, newUser);
  128.                 request.getSession().setAttribute(SESSION_PARAM_ONEID_AUTH, email);
  129.                 request.getRequestDispatcher(DASHBOARD_SINGING).forward(request, response);
  130.             } catch (Exception e) {
  131.                 e.printStackTrace();
  132.                 LogoutServlet.doLogout(request, response, "System error !! Please contact system administrator!");
  133.             }
  134.  
  135.             //
  136.         } else if (!StringUtils.isEmpty(oneIdAuthToken) && userDao.findUsername(username) != null) {
  137.             System.out.println("Login success!!");
  138.     //int   A=  user.getUserId();
  139.             request.getSession().setAttribute(SESSION_PARAM_USER, user);
  140.             request.getSession().setAttribute(SESSION_PARAM_ONEID_AUTH, email);
  141.             request.getRequestDispatcher(DASHBOARD_SINGING).forward(request, response);
  142.             System.out.println("DAO: " + user.getUserId());
  143.             System.out.println("Token =" + generateUserAccessToken (user.getUserId()));
  144.             //LoginCompanyServlet.doPost(request, response, "System error !! Please contact system administrator!");
  145.            
  146.             // example qury
  147.             DocumentDAO hisDao = new DocumentDAO();
  148. //          if( hisDao.findByUserUID(user) != null) {
  149. //              for ( DocumentDB his : hisDao.findByUserUID(user)) {
  150. //                  System.out.println("DAO:USER = " + his.getCreator().getUserName().toString());
  151. //                  System.out.println("DAO:USER = " + generateUserAccessToken (8));
  152. //                 
  153. //              }
  154. //         
  155. //          }
  156.             if( hisDao.findByDateAndYear2(12, 2561,user) != null) {
  157.                 System.out.println(hisDao.findByDateAndYear2(12, 2561,user).toString());
  158.                 for ( DocumentDB his : hisDao.findByDateAndYear2(12, 2561,user)) {
  159.                     System.out.println(his.getTimeSign().toString());
  160. //                  System.out.println("DAO:USER = " + generateUserAccessToken (8));
  161.                    
  162.                 }
  163.            
  164.             }
  165.         }
  166.  
  167.         else
  168.             LogoutServlet.doLogout(request, response, "Login Failed!!");
  169.  
  170.  
  171.  
  172.     }
  173.    
  174.     public static String generateUserAccessToken ( int userId ) {
  175.         String SALT = "AccTkn-";
  176.         try {
  177.             String accessToken = Base64.toBase64String(CryptoUtil.encryptData((SALT+userId).getBytes()));
  178.             return accessToken;
  179.         }catch (Exception e) {
  180.             e.printStackTrace();
  181.         }
  182.         return null;
  183.     }
  184. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement