Advertisement
Guest User

Untitled

a guest
Sep 19th, 2016
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.28 KB | None | 0 0
  1. @Override
  2. protected void doGet(HttpServletRequest request, HttpServletResponse response)
  3. throws ServletException, IOException {
  4. response.setContentType("application/json;charset=UTF-8");
  5. try (PrintWriter out = response.getWriter()) {
  6. try {
  7. String result = getCountLoginAttemp(request, false);
  8. if (result != null) {
  9. out.print(getResultGsonString(false, result));
  10. return;
  11. }
  12. String j_username = request.getParameter("j_username");
  13. String j_password = request.getParameter("j_password");
  14.  
  15. if (isNullOrEmpty(j_username) || isNullOrEmpty(j_password)) {
  16. out.print(getResultGsonString(false, "Не все параметры заполнены"));
  17. return;
  18. }
  19.  
  20. if (request.getUserPrincipal() != null) {
  21. request.logout();
  22. }
  23.  
  24. request.login(j_username, Crypt.MD5(j_password));
  25.  
  26. Users user = userControlLocal.getUserByUName(j_username);
  27. if (user != null) {
  28. HttpSession session = request.getSession(true);
  29. session.setAttribute(USER, user);
  30. out.print(getResultGsonString(true, null));
  31. }
  32.  
  33. } catch (Exception e) {
  34. //UserLockoutManagerRuntimeMBean.isLockedOut("");
  35. String result = getCountLoginAttemp(request, true);
  36. if (result == null) {
  37. result = "Ошибка авторизации";
  38. }
  39. out.print(getResultGsonString(false, result));
  40. //logger.error("error", e);
  41. }
  42. }
  43. }
  44.  
  45. private static String getCountLoginAttemp(HttpServletRequest request, boolean itr) {
  46. HttpSession session = request.getSession();
  47. Integer loginAttempt = (Integer) session.getAttribute("loginCount");
  48. if (loginAttempt == null) {
  49. loginAttempt = 1;
  50. }
  51.  
  52. if (loginAttempt > loginAttemptCount - 1) {
  53. StringBuilder err = new StringBuilder();
  54. err.append("Количество попыток неправильного ввода пароли превысило ")
  55. .append(loginAttemptCount)
  56. .append(". Следующая попытка через ");
  57.  
  58. Long s = (Long) session.getAttribute("loginTime");
  59. if (s != null) {
  60. Long res = new Date().getTime() / 1000 - s;
  61. if (res > 0 && res < 60 * loginAttemptTime) {
  62. return err.append((loginAttemptTime - 1) - (res / 60)).append(" мин ").append(59 - (res % 60)).append(" секунд").toString();
  63. } else {
  64. session.setAttribute("loginTime", null);
  65. session.setAttribute("loginCount", 1);
  66. }
  67. } else {
  68. session.setAttribute("loginTime", new Date().getTime() / 1000);
  69. return err.append(loginAttemptTime).append(" мин").toString();
  70. }
  71. } else if (itr) {
  72. loginAttempt++;
  73. session.setAttribute("loginCount", loginAttempt);
  74. }
  75. return null;
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement