Advertisement
ballchaichana

login

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