Advertisement
Guest User

Untitled

a guest
Mar 11th, 2016
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.22 KB | None | 0 0
  1. package org.jboss.as.quickstarts.servlet;
  2.  
  3. import javax.jms.Destination;
  4. import javax.servlet.ServletException;
  5. import javax.servlet.annotation.WebServlet;
  6. import javax.servlet.http.HttpServlet;
  7. import javax.servlet.http.HttpServletRequest;
  8. import javax.servlet.http.HttpServletResponse;
  9. import javax.servlet.http.HttpSession;
  10.  
  11. import javax.inject.Inject;
  12. import javax.json.Json;
  13. import javax.json.JsonObject;
  14. import javax.json.JsonWriter;
  15. import javax.json.stream.JsonParsingException;
  16.  
  17. import java.io.IOException;
  18. import org.jboss.as.quickstarts.model.JSONParserKeyValue;
  19. import org.jboss.as.quickstarts.model.User;
  20. import org.jboss.as.quickstarts.model.UserDao;
  21.  
  22. import javax.persistence.EntityManager;
  23. import javax.persistence.Query;
  24. import javax.persistence.NoResultException;
  25. /**
  26. * Created by hs on 10/03/2016.
  27. */
  28.  
  29.  
  30.  
  31. @WebServlet("/auth")
  32. public class AuthServletClient extends HttpServlet {
  33.  
  34. @Inject
  35. private EntityManager entityManager;
  36.  
  37. // @Override
  38. // protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  39. //
  40. // resp.setContentType("text/html");
  41. // PrintWriter out = resp.getWriter();
  42. //
  43. //
  44. // Query query = entityManager.createQuery("select u from User u where u.username = :username");
  45. // query.setParameter("username", "nik");
  46. // User user = (User) query.getSingleResult();
  47. // out.write("<p>Sending messages to <em>" + user.getPassword() + "</em></p>");
  48. //
  49. // if(req.getParameterMap().keySet().contains("login")) {
  50. //
  51. // out.write("<h1>Fi-fah-foo!</h1>");
  52. // out.write("<h2>/auth?login:</h2>");
  53. // out.write("<p>Setting loggedIn=true in the session, check /home</p>");
  54. // out.write("<p>You are now logged in! :)</p>");
  55. //
  56. // HttpSession sess = req.getSession();
  57. // sess.setAttribute("loggedIn", true);
  58. // }
  59. //
  60. // if(req.getParameterMap().keySet().contains("logout")) {
  61. // out.write("<h1>Fi-fah-foo!</h1>");
  62. // out.write("<h2>/auth?logout:</h2>");
  63. // out.write("<p>Deleting loggedIn from the session, check /home</p>");
  64. // out.write("<p>You are now logged out! :)</p>");
  65. //
  66. // HttpSession sess = req.getSession();
  67. // sess.removeAttribute("loggedIn");
  68. // }
  69. //
  70. // out.close();
  71. // }
  72.  
  73.  
  74.  
  75. // private void login()
  76.  
  77. @Override
  78. protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  79.  
  80. boolean logout = req.getParameterMap().keySet().contains("logout");
  81.  
  82.  
  83.  
  84. if(logout) {
  85.  
  86. JSONParserKeyValue jsonParser = new JSONParserKeyValue(req);
  87. String username = jsonParser.getValueByKey("username");
  88. resp.setContentType("application/json");
  89. JsonWriter jsonWriter = Json.createWriter(resp.getWriter());
  90. JsonObject model = null;
  91. if(logout(username)){
  92. model = Json.createObjectBuilder()
  93. .add("SUCCESS", "TRUE")
  94. .add("username", username)
  95. .build();
  96. } else {
  97. model = Json.createObjectBuilder()
  98. .add("SUCCESS", "FALSE")
  99. .add("username", username)
  100. .build();
  101. }
  102. jsonWriter.writeObject(model);
  103. jsonWriter.close();
  104.  
  105. } else {
  106. // Parse json request data
  107. // String data = getJsonDataFromRequest(req);
  108. JSONParserKeyValue jsonParser = new JSONParserKeyValue(req);
  109. String username = jsonParser.getValueByKey("username");
  110. String password = jsonParser.getValueByKey("password");
  111. // write response
  112. resp.setContentType("application/json");
  113. JsonWriter jsonWriter = Json.createWriter(resp.getWriter());
  114. JsonObject model = null;
  115. if(auth(username, password)){
  116. model = Json.createObjectBuilder()
  117. .add("SUCCESS", "TRUE")
  118. .add("username", username)
  119. .add("password", password)
  120. .build();
  121. } else {
  122. model = Json.createObjectBuilder()
  123. .add("SUCCESS", "FALSE")
  124. .add("username", username)
  125. .add("password", password)
  126. .build();
  127. }
  128. jsonWriter.writeObject(model);
  129. jsonWriter.close();
  130. }
  131. }
  132.  
  133. @Inject
  134. private UserDao userDao;
  135. private boolean auth(String username, String password){
  136. //query select * users where user = user
  137. String querySQL = "select u from User u where u.username = :username";
  138. User user = null;
  139. try {
  140. Query query = entityManager.createQuery(querySQL);
  141. query.setParameter("username", username);
  142. user = (User) query.getSingleResult(); // retrieve user from result
  143.  
  144. } catch (NoResultException e){
  145. //System.out.println("NoResultException" + e);
  146. return false;
  147. }
  148. // check for login & set loggedin = true
  149. if(user.getPassword().equals(password)){
  150.  
  151. user.setLoggedIn(true);
  152. userDao.loggedInTrue(user);
  153. return true;
  154. }
  155. // otherwise return false
  156. return false;
  157. }
  158.  
  159. private boolean logout(String username) {
  160. //query select * users where user = user
  161. String querySQL = "select u from User u where u.username = :username";
  162. User user = null;
  163. try {
  164. Query query = entityManager.createQuery(querySQL);
  165. query.setParameter("username", username);
  166. user = (User) query.getSingleResult(); // retrieve user from result
  167. } catch (NoResultException e){
  168. //System.out.println("NoResultException" + e);
  169. return false;
  170. }
  171. user.setLoggedIn(false);
  172. userDao.loggedInFalse(user);
  173. return true;
  174. }
  175. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement