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.IOException;
- import java.io.InputStreamReader;
- import java.net.URISyntaxException;
- import java.util.Date;
- 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 org.apache.commons.lang3.StringUtils;
- import org.apache.http.HttpResponse;
- import org.apache.http.client.ClientProtocolException;
- import org.apache.http.client.HttpClient;
- import org.apache.http.client.methods.HttpGet;
- import org.apache.http.client.methods.HttpPost;
- import org.apache.http.client.utils.URIBuilder;
- import org.apache.http.entity.StringEntity;
- import org.apache.http.impl.client.HttpClientBuilder;
- import org.bouncycastle.util.encoders.Base64;
- import com.google.gson.JsonArray;
- import com.google.gson.JsonDeserializer;
- import com.google.gson.JsonObject;
- import com.google.gson.JsonParser;
- import th.in.oneauthen.SigningTest;
- import th.in.oneauthen.object.DocumentDB;
- import th.in.oneauthen.object.UserUidDB;
- import th.in.oneauthen.object.DAO.DocumentDAO;
- import th.in.oneauthen.object.DAO.UserUidDAO;
- import th.in.oneauthen.util.CryptoUtil;
- /**
- * Servlet implementation class LoginServlet
- */
- @WebServlet("/loginCompany")
- public class LoginCompanyServlet extends HttpServlet {
- private static final long serialVersionUID = 1L;
- public static final String SESSION_PARAM_USER = "userSession";
- public static final String SESSION_PARAM_ONEID_AUTH = "authToken";
- public static final String REQUEST_PARAM_USERNAME = "username";
- // public static final String REQUEST_PARAM_PASSWORD = "password";
- public static final String DASHBOARD_URL = "dashboard.jsp";
- public static final String DASHBOARD_SINGING = "dashboard.jsp?reqp=signing";
- ////////////////////////////////////////////////////////////////////
- public static String Email = "email_company";
- public static String Name_company = "name_company";
- /**
- * @see HttpServlet#HttpServlet()
- */
- public LoginCompanyServlet() {
- super();
- // TODO Auto-generated constructor stub
- }
- /**
- * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
- * response)
- */
- protected void doGet(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- // TODO Auto-generated method stub
- doPost(request, response);
- }
- /**
- * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
- * response)
- */
- public static void doPost(HttpServletRequest request, HttpServletResponse response,String logoutMsg)
- throws ServletException, IOException {
- // TODO Auto-generated method stub
- JsonObject json = new JsonObject();
- json.addProperty("grant_type", "password");
- json.addProperty("client_id", 50);
- json.addProperty("client_secret", "cKnvabgq5ZWre7gR4R4E9Y0AGxMYdJrtj7TneYDi");
- json.addProperty("username", "chatchaii");
- json.addProperty("password", "chatchaii.1");
- BufferedReader br = null;
- String output;
- StringBuilder responseBuilder = null;
- HttpClient httpClient = HttpClientBuilder.create().build();
- URIBuilder uriBuilder;
- try {
- uriBuilder = new URIBuilder("https://testoneid.inet.co.th/api/oauth/getpwd");
- HttpPost postMethod = new HttpPost(uriBuilder.build());
- StringEntity params = new StringEntity(json.toString());
- postMethod.addHeader("content-type", "application/json");
- postMethod.setEntity(params);
- HttpResponse httpResponse = httpClient.execute(postMethod);
- int responseCode = httpResponse.getStatusLine().getStatusCode();
- if (responseCode == 201 || responseCode == 200) {
- br = new BufferedReader(new InputStreamReader((httpResponse.getEntity().getContent())));
- responseBuilder = new StringBuilder();
- while ((output = br.readLine()) != null) {
- responseBuilder.append(output);
- }
- System.out.println(httpResponse.getStatusLine().getStatusCode());
- } else {
- System.out.println("Failed : HTTP error code : " + httpResponse.getStatusLine().getStatusCode());
- }
- String GetToken = responseBuilder.toString();
- JsonObject jsonObject = new JsonParser().parse(GetToken).getAsJsonObject();
- String access_token = jsonObject.get("access_token").getAsString();
- // เรัยกใช้อีกฟังก์ชั่นเพื่อรับข้อมูลขอผู้ที่login
- String oneIdAuthToken = SetAccessToken(access_token);
- JsonObject jsonObject_token = new JsonParser().parse(oneIdAuthToken).getAsJsonObject();
- // เเอดข้อมูล jsonArray to data
- JsonArray data = jsonObject_token.getAsJsonArray("data");
- for (int i = 0; i < 1; ++i) {
- JsonObject dataObj = (JsonObject) data.get(i);
- Email = dataObj.get("thai_email").getAsString();
- Name_company = dataObj.get("id_card_num").getAsString();
- }
- System.out.println(Email);
- UserUidDAO userDao = new UserUidDAO();
- UserUidDB user = null;
- if( userDao.findUsername(Name_company) != null) {
- user = userDao.findUsername(Name_company);
- }
- if (StringUtils.isEmpty(oneIdAuthToken) && user == null) {
- LogoutServlet.doLogout(request, response, "Login Failed!!");
- } else if (!StringUtils.isEmpty(oneIdAuthToken) && user == null) {
- // oneIdAuthToken != null && user == null
- UserUidDB newUser = new UserUidDB();
- newUser.setUserName(Name_company);
- newUser.setLastLogin(new Date());
- newUser.setSamlTokenUid(oneIdAuthToken);
- try {
- userDao.save(newUser);
- System.out.println("Login success!!");
- request.getSession().setAttribute(SESSION_PARAM_USER, newUser);
- request.getSession().setAttribute(SESSION_PARAM_ONEID_AUTH, Email);
- request.getRequestDispatcher(DASHBOARD_SINGING).forward(request, response);
- } catch (Exception e) {
- e.printStackTrace();
- LogoutServlet.doLogout(request, response, "System error !! Please contact system administrator!");
- }
- } else if (!StringUtils.isEmpty(oneIdAuthToken) && userDao.findUsername(Name_company) != null) {
- System.out.println("Login success!!");
- //int A= user.getUserId();
- request.getSession().setAttribute(SESSION_PARAM_USER, user);
- request.getSession().setAttribute(SESSION_PARAM_ONEID_AUTH, Email);
- request.getRequestDispatcher(DASHBOARD_SINGING).forward(request, response);
- System.out.println("DAO: " + user.getUserId());
- // example qury
- DocumentDAO hisDao = new DocumentDAO();
- if( hisDao.findByUserUID(user) != null) {
- for ( DocumentDB his : hisDao.findByUserUID(user)) {
- System.out.println("DAO:USER = " + his.getCreator().getUserName().toString());
- }
- }
- }
- } catch (URISyntaxException e1) {
- System.out.println("can not connect to URL (https://one.th/api/oauth/getpwd) ");
- e1.printStackTrace();
- }
- }
- public static String SetAccessToken(String token) throws URISyntaxException, ClientProtocolException, IOException {
- BufferedReader br = null;
- String output;
- StringBuilder responseBuilder = null;
- HttpClient httpClient = HttpClientBuilder.create().build();
- URIBuilder uriBuilder;
- uriBuilder = new URIBuilder("https://testoneid.inet.co.th/api/getBusinessAccount/0107538000533");
- HttpGet getMethod = new HttpGet(uriBuilder.build());
- getMethod.addHeader("Authorization", "Bearer " + token);
- HttpResponse httpResponse = httpClient.execute(getMethod);
- int responseCode = httpResponse.getStatusLine().getStatusCode();
- if (responseCode == 201 || responseCode == 200) {
- br = new BufferedReader(new InputStreamReader((httpResponse.getEntity().getContent())));
- responseBuilder = new StringBuilder();
- while ((output = br.readLine()) != null) {
- responseBuilder.append(output);
- }
- } else {
- System.out.println("Failed : HTTP error code : " + httpResponse.getStatusLine().getStatusCode());
- }
- return responseBuilder.toString();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement