From cc0b252c4e901486bb2cc0a7d29db660d2f97895 Mon Sep 17 00:00:00 2001 From: Alexsandr Chevtaev Date: Sat, 15 Aug 2020 08:51:09 +0300 Subject: [PATCH 1/9] =?UTF-8?q?=D0=9C=D0=B5=D1=82=D0=BE=D0=B4=20User=20log?= =?UTF-8?q?in=20(=D1=84=D0=B0=D0=B9=D0=BB=20AuthenticationService=20=D0=B2?= =?UTF-8?q?=20=D0=BF=D0=B0=D0=BF=D0=BA=D0=B5=20service)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rd/online/repository/IUserRepository.java | 2 + .../rd/online/repository/UserRepository.java | 9 +++++ .../online/service/AuthenticationService.java | 38 +++++++++++++++++-- 3 files changed, 45 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/epam/izh/rd/online/repository/IUserRepository.java b/src/main/java/com/epam/izh/rd/online/repository/IUserRepository.java index 0003397..b804241 100644 --- a/src/main/java/com/epam/izh/rd/online/repository/IUserRepository.java +++ b/src/main/java/com/epam/izh/rd/online/repository/IUserRepository.java @@ -8,5 +8,7 @@ public interface IUserRepository { User findByLogin(String login); + User findByPassword(String password); // (^_^) + void deleteByLogin(String login); } diff --git a/src/main/java/com/epam/izh/rd/online/repository/UserRepository.java b/src/main/java/com/epam/izh/rd/online/repository/UserRepository.java index e81491d..f42865a 100644 --- a/src/main/java/com/epam/izh/rd/online/repository/UserRepository.java +++ b/src/main/java/com/epam/izh/rd/online/repository/UserRepository.java @@ -57,6 +57,15 @@ public User findByLogin(String login) { .findFirst().orElse(null); } + @Override // Поиск в БД пароля (^_^) + public User findByPassword(String password) { + Objects.requireNonNull(password, "Отсутствует пароль для поиска пользователя"); + + return userDatabase.stream() + .filter(user -> user.getPassword().equals(password)) + .findFirst().orElse(null); + } + /** * Метод удаления пользователя с определенным логином. *

diff --git a/src/main/java/com/epam/izh/rd/online/service/AuthenticationService.java b/src/main/java/com/epam/izh/rd/online/service/AuthenticationService.java index bcb09a7..247c499 100644 --- a/src/main/java/com/epam/izh/rd/online/service/AuthenticationService.java +++ b/src/main/java/com/epam/izh/rd/online/service/AuthenticationService.java @@ -24,18 +24,46 @@ public AuthenticationService(IUserRepository userRepository) { * * @param user - пользователь проходящий авторизацию */ + + // (^_^) + private class UserNotFoundException extends Throwable { + public UserNotFoundException(String s) { + } + } + + // (^_^) + private class NotCorrectPasswordException extends Throwable { + public NotCorrectPasswordException(String s) { + } + } + @Override public User login(User user) { // Находим пользователя в базе + // Сравниваем пароли (^_^) + User foundUser = userRepository.findByLogin(user.getLogin()); + User foundPass = userRepository.findByPassword(user.getPassword()); // (^_^) - // - // Здесь необходимо реализовать перечисленные выше проверки - // + try { + if (foundUser == null) { + throw new UserNotFoundException("Пользователь с таким логином не найден"); + } + + if (foundPass == null) { + throw new NotCorrectPasswordException("Пароль введен неверно!"); + } + + } +catch (UserNotFoundException e) { + System.out.println(e); +} + catch (NotCorrectPasswordException e) { + System.out.println(e); + } // Устанавливаем найденного пользователя, который прошел все проверки, как вошедшего в систему. CurrentUserManager.setCurrentLoggedInUser(foundUser); - return foundUser; } @@ -46,4 +74,6 @@ public User login(User user) { public void logout() { CurrentUserManager.setCurrentLoggedInUser(null); } + + } From 7586307d097271cde0828bf136b2fcf24818959c Mon Sep 17 00:00:00 2001 From: Alexsandr Chevtaev Date: Sat, 15 Aug 2020 09:15:40 +0300 Subject: [PATCH 2/9] =?UTF-8?q?=D0=9C=D0=B5=D1=82=D0=BE=D0=B4=20User=20log?= =?UTF-8?q?in=20(=D1=84=D0=B0=D0=B9=D0=BB=20AuthenticationService=20=D0=B2?= =?UTF-8?q?=20=D0=BF=D0=B0=D0=BF=D0=BA=D0=B5=20service)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rd/online/service/AuthenticationService.java | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/epam/izh/rd/online/service/AuthenticationService.java b/src/main/java/com/epam/izh/rd/online/service/AuthenticationService.java index 247c499..8cdc5e3 100644 --- a/src/main/java/com/epam/izh/rd/online/service/AuthenticationService.java +++ b/src/main/java/com/epam/izh/rd/online/service/AuthenticationService.java @@ -26,15 +26,11 @@ public AuthenticationService(IUserRepository userRepository) { */ // (^_^) - private class UserNotFoundException extends Throwable { - public UserNotFoundException(String s) { - } + class UserNotFoundException extends Throwable { } // (^_^) - private class NotCorrectPasswordException extends Throwable { - public NotCorrectPasswordException(String s) { - } + class NotCorrectPasswordException extends Throwable { } @Override @@ -47,19 +43,19 @@ public User login(User user) { try { if (foundUser == null) { - throw new UserNotFoundException("Пользователь с таким логином не найден"); + throw new UserNotFoundException(); } if (foundPass == null) { - throw new NotCorrectPasswordException("Пароль введен неверно!"); + throw new NotCorrectPasswordException(); } } catch (UserNotFoundException e) { - System.out.println(e); + System.out.println("Пользователь с таким логином не найден"); } catch (NotCorrectPasswordException e) { - System.out.println(e); + System.out.println("Пароль введен неверно!"); } // Устанавливаем найденного пользователя, который прошел все проверки, как вошедшего в систему. From a570dfcb9378a2c070d45863694b04e8c87f06c4 Mon Sep 17 00:00:00 2001 From: Alexsandr Chevtaev Date: Sat, 15 Aug 2020 08:51:09 +0300 Subject: [PATCH 3/9] =?UTF-8?q?=D0=A1=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=20?= =?UTF-8?q?=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=20User=20register=20=D0=B8=D0=B7?= =?UTF-8?q?=20=D1=84=D0=B0=D0=B9=D0=BB=D0=B0=20UserService=20(=D0=BF=D0=BE?= =?UTF-8?q?=D1=88=D0=BB=D0=B8=20=D0=BF=D0=B5=D1=80=D0=B2=D1=8B=D0=B5=20?= =?UTF-8?q?=D0=B7=D0=B5=D0=BB=D0=B5=D0=BD=D1=8B=D0=B5=20=D1=82=D0=B5=D1=81?= =?UTF-8?q?=D1=82=D1=8B)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit По прежнему не проходят тесты для: Метод User login (файл AuthenticationService в папке service) --- .../izh/rd/online/service/UserService.java | 43 +++++++++++++++++-- 1 file changed, 40 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/epam/izh/rd/online/service/UserService.java b/src/main/java/com/epam/izh/rd/online/service/UserService.java index 78c39ed..b82d1cd 100644 --- a/src/main/java/com/epam/izh/rd/online/service/UserService.java +++ b/src/main/java/com/epam/izh/rd/online/service/UserService.java @@ -29,12 +29,49 @@ public UserService(IUserRepository userRepository) { * * @param user - даныне регистрирующегося пользователя */ + + // (^_^) + class UserAlreadyRegisteredException extends Throwable { + } + + // (^_^) + class SimplePasswordException extends NumberFormatException { + } + @Override public User register(User user) { - // - // Здесь необходимо реализовать перечисленные выше проверки - // + + // проверяем заполняемость полей + try { + if (user.getPassword().trim().length() == 0 || user.getLogin().trim().length() == 0) { + throw new IllegalArgumentException(); + } + } + catch (IllegalArgumentException e) { + System.out.println("Ошибка в заполнении полей"); + } + + // проверяем есть ли в базе юзер с таким же логином + User foundUser = userRepository.findByLogin(user.getLogin()); + + try { + if (foundUser != null) { + throw new UserAlreadyRegisteredException(); + } + + } + catch (UserAlreadyRegisteredException e) { + System.out.println("Пользователь с логином " + user.getLogin() + " уже зарегистрирован"); + } + + // проверяем сложность пароля +try { + Integer.parseInt(user.getPassword()); +} +catch (SimplePasswordException e) { + System.out.println("Пароль не соответствует требованиям безопасности"); +} // Если все проверки успешно пройдены, сохраняем пользователя в базу return userRepository.save(user); From f181c519d1304659225e4e39ec080651a1f85767 Mon Sep 17 00:00:00 2001 From: Alexsandr Chevtaev Date: Sat, 15 Aug 2020 15:51:32 +0300 Subject: [PATCH 4/9] =?UTF-8?q?=D0=9C=D0=B5=D1=82=D0=BE=D0=B4=20User=20log?= =?UTF-8?q?in=20(=D1=84=D0=B0=D0=B9=D0=BB=20AuthenticationService=20=D0=B2?= =?UTF-8?q?=20=D0=BF=D0=B0=D0=BF=D0=BA=D0=B5=20service)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../online/exception/NotCorrectPasswordException.java | 4 ++++ .../izh/rd/online/exception/UserNotFoundException.java | 4 ++++ .../izh/rd/online/service/AuthenticationService.java | 10 ++-------- .../com/epam/izh/rd/online/service/UserService.java | 7 ++++--- 4 files changed, 14 insertions(+), 11 deletions(-) create mode 100644 src/main/java/com/epam/izh/rd/online/exception/NotCorrectPasswordException.java create mode 100644 src/main/java/com/epam/izh/rd/online/exception/UserNotFoundException.java diff --git a/src/main/java/com/epam/izh/rd/online/exception/NotCorrectPasswordException.java b/src/main/java/com/epam/izh/rd/online/exception/NotCorrectPasswordException.java new file mode 100644 index 0000000..68e5652 --- /dev/null +++ b/src/main/java/com/epam/izh/rd/online/exception/NotCorrectPasswordException.java @@ -0,0 +1,4 @@ +package com.epam.izh.rd.online.exception; + +public class NotCorrectPasswordException extends Exception { +} diff --git a/src/main/java/com/epam/izh/rd/online/exception/UserNotFoundException.java b/src/main/java/com/epam/izh/rd/online/exception/UserNotFoundException.java new file mode 100644 index 0000000..e7dccb0 --- /dev/null +++ b/src/main/java/com/epam/izh/rd/online/exception/UserNotFoundException.java @@ -0,0 +1,4 @@ +package com.epam.izh.rd.online.exception; + +public class UserNotFoundException extends Exception { +} diff --git a/src/main/java/com/epam/izh/rd/online/service/AuthenticationService.java b/src/main/java/com/epam/izh/rd/online/service/AuthenticationService.java index 8cdc5e3..1fa785c 100644 --- a/src/main/java/com/epam/izh/rd/online/service/AuthenticationService.java +++ b/src/main/java/com/epam/izh/rd/online/service/AuthenticationService.java @@ -1,5 +1,7 @@ package com.epam.izh.rd.online.service; +import com.epam.izh.rd.online.exception.UserNotFoundException; +import com.epam.izh.rd.online.exception.NotCorrectPasswordException; import com.epam.izh.rd.online.entity.User; import com.epam.izh.rd.online.repository.IUserRepository; @@ -25,14 +27,6 @@ public AuthenticationService(IUserRepository userRepository) { * @param user - пользователь проходящий авторизацию */ - // (^_^) - class UserNotFoundException extends Throwable { - } - - // (^_^) - class NotCorrectPasswordException extends Throwable { - } - @Override public User login(User user) { // Находим пользователя в базе diff --git a/src/main/java/com/epam/izh/rd/online/service/UserService.java b/src/main/java/com/epam/izh/rd/online/service/UserService.java index b82d1cd..8a1617d 100644 --- a/src/main/java/com/epam/izh/rd/online/service/UserService.java +++ b/src/main/java/com/epam/izh/rd/online/service/UserService.java @@ -41,8 +41,7 @@ class SimplePasswordException extends NumberFormatException { @Override public User register(User user) { - - // проверяем заполняемость полей + // проверяем заполняемость полей try { if (user.getPassword().trim().length() == 0 || user.getLogin().trim().length() == 0) { throw new IllegalArgumentException(); @@ -67,12 +66,14 @@ public User register(User user) { // проверяем сложность пароля try { - Integer.parseInt(user.getPassword()); + Integer.parseInt(user.getPassword()); + } catch (SimplePasswordException e) { System.out.println("Пароль не соответствует требованиям безопасности"); } + // Если все проверки успешно пройдены, сохраняем пользователя в базу return userRepository.save(user); } From 53f1df1b2789653dbbb56d3a170c5736c4c2ad07 Mon Sep 17 00:00:00 2001 From: Alexsandr Chevtaev Date: Sat, 15 Aug 2020 16:20:44 +0300 Subject: [PATCH 5/9] =?UTF-8?q?=D0=9C=D0=B5=D1=82=D0=BE=D0=B4=20User=20log?= =?UTF-8?q?in=20(=D1=84=D0=B0=D0=B9=D0=BB=20AuthenticationService=20=D0=B2?= =?UTF-8?q?=20=D0=BF=D0=B0=D0=BF=D0=BA=D0=B5=20service)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../NotCorrectPasswordException.java | 5 ++++ .../exception/UserNotFoundException.java | 5 ++++ .../online/service/AuthenticationService.java | 28 ++++++------------- .../service/IAuthenticationService.java | 2 +- 4 files changed, 19 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/epam/izh/rd/online/exception/NotCorrectPasswordException.java b/src/main/java/com/epam/izh/rd/online/exception/NotCorrectPasswordException.java index 68e5652..8e6cf7f 100644 --- a/src/main/java/com/epam/izh/rd/online/exception/NotCorrectPasswordException.java +++ b/src/main/java/com/epam/izh/rd/online/exception/NotCorrectPasswordException.java @@ -1,4 +1,9 @@ package com.epam.izh.rd.online.exception; public class NotCorrectPasswordException extends Exception { + + NotCorrectPasswordException() { + System.out.println("Пароль введен неверно!"); + } + } diff --git a/src/main/java/com/epam/izh/rd/online/exception/UserNotFoundException.java b/src/main/java/com/epam/izh/rd/online/exception/UserNotFoundException.java index e7dccb0..b68e491 100644 --- a/src/main/java/com/epam/izh/rd/online/exception/UserNotFoundException.java +++ b/src/main/java/com/epam/izh/rd/online/exception/UserNotFoundException.java @@ -1,4 +1,9 @@ package com.epam.izh.rd.online.exception; public class UserNotFoundException extends Exception { + + UserNotFoundException() { + System.out.println("Пользователь с таким логином не найден"); + } + } diff --git a/src/main/java/com/epam/izh/rd/online/service/AuthenticationService.java b/src/main/java/com/epam/izh/rd/online/service/AuthenticationService.java index 1fa785c..ad9a1aa 100644 --- a/src/main/java/com/epam/izh/rd/online/service/AuthenticationService.java +++ b/src/main/java/com/epam/izh/rd/online/service/AuthenticationService.java @@ -28,33 +28,21 @@ public AuthenticationService(IUserRepository userRepository) { */ @Override - public User login(User user) { - // Находим пользователя в базе - // Сравниваем пароли (^_^) - - User foundUser = userRepository.findByLogin(user.getLogin()); - User foundPass = userRepository.findByPassword(user.getPassword()); // (^_^) + public User login(User user) throws Exception { try { - if (foundUser == null) { - throw new UserNotFoundException(); - } - - if (foundPass == null) { - throw new NotCorrectPasswordException(); - } + User foundUser = userRepository.findByLogin(user.getLogin()); + User foundPass = userRepository.findByPassword(user.getPassword()); - } -catch (UserNotFoundException e) { - System.out.println("Пользователь с таким логином не найден"); -} - catch (NotCorrectPasswordException e) { - System.out.println("Пароль введен неверно!"); - } // Устанавливаем найденного пользователя, который прошел все проверки, как вошедшего в систему. CurrentUserManager.setCurrentLoggedInUser(foundUser); return foundUser; + + } + catch (UserNotFoundException e) { + + } } /** diff --git a/src/main/java/com/epam/izh/rd/online/service/IAuthenticationService.java b/src/main/java/com/epam/izh/rd/online/service/IAuthenticationService.java index 3f296c3..773dd71 100644 --- a/src/main/java/com/epam/izh/rd/online/service/IAuthenticationService.java +++ b/src/main/java/com/epam/izh/rd/online/service/IAuthenticationService.java @@ -3,7 +3,7 @@ import com.epam.izh.rd.online.entity.User; public interface IAuthenticationService { - User login(User user); + User login(User user) throws Exception; void logout(); } From ab30bfc52fc6835edf03d9291feccda6ca8d0cad Mon Sep 17 00:00:00 2001 From: Alexsandr Chevtaev Date: Sat, 15 Aug 2020 16:31:30 +0300 Subject: [PATCH 6/9] =?UTF-8?q?=D0=9C=D0=B5=D1=82=D0=BE=D0=B4=20User=20log?= =?UTF-8?q?in=20(=D1=84=D0=B0=D0=B9=D0=BB=20AuthenticationService=20=D0=B2?= =?UTF-8?q?=20=D0=BF=D0=B0=D0=BF=D0=BA=D0=B5=20service)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../exception/NotCorrectPasswordException.java | 2 +- .../rd/online/exception/UserNotFoundException.java | 2 +- .../rd/online/service/AuthenticationService.java | 14 +++++++++----- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/epam/izh/rd/online/exception/NotCorrectPasswordException.java b/src/main/java/com/epam/izh/rd/online/exception/NotCorrectPasswordException.java index 8e6cf7f..06a1fc3 100644 --- a/src/main/java/com/epam/izh/rd/online/exception/NotCorrectPasswordException.java +++ b/src/main/java/com/epam/izh/rd/online/exception/NotCorrectPasswordException.java @@ -2,7 +2,7 @@ public class NotCorrectPasswordException extends Exception { - NotCorrectPasswordException() { + public NotCorrectPasswordException() { System.out.println("Пароль введен неверно!"); } diff --git a/src/main/java/com/epam/izh/rd/online/exception/UserNotFoundException.java b/src/main/java/com/epam/izh/rd/online/exception/UserNotFoundException.java index b68e491..cb23ec1 100644 --- a/src/main/java/com/epam/izh/rd/online/exception/UserNotFoundException.java +++ b/src/main/java/com/epam/izh/rd/online/exception/UserNotFoundException.java @@ -2,7 +2,7 @@ public class UserNotFoundException extends Exception { - UserNotFoundException() { + public UserNotFoundException() { System.out.println("Пользователь с таким логином не найден"); } diff --git a/src/main/java/com/epam/izh/rd/online/service/AuthenticationService.java b/src/main/java/com/epam/izh/rd/online/service/AuthenticationService.java index ad9a1aa..7b41c58 100644 --- a/src/main/java/com/epam/izh/rd/online/service/AuthenticationService.java +++ b/src/main/java/com/epam/izh/rd/online/service/AuthenticationService.java @@ -30,19 +30,23 @@ public AuthenticationService(IUserRepository userRepository) { @Override public User login(User user) throws Exception { - try { + User foundUser = userRepository.findByLogin(user.getLogin()); User foundPass = userRepository.findByPassword(user.getPassword()); + if (foundUser == null) { + throw new UserNotFoundException(); + } + + if (foundPass == null) { + throw new NotCorrectPasswordException(); + } + // Устанавливаем найденного пользователя, который прошел все проверки, как вошедшего в систему. CurrentUserManager.setCurrentLoggedInUser(foundUser); return foundUser; - } - catch (UserNotFoundException e) { - - } } /** From 3567da2f631a676eefb44035009562475c37d94d Mon Sep 17 00:00:00 2001 From: Alexsandr Chevtaev Date: Sun, 16 Aug 2020 10:11:25 +0300 Subject: [PATCH 7/9] =?UTF-8?q?=D0=9C=D0=B5=D1=82=D0=BE=D0=B4=20void=20del?= =?UTF-8?q?ete(String=20login)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../online/exception/NotAccessException.java | 9 ++++ .../exception/SimplePasswordException.java | 9 ++++ .../UserAlreadyRegisteredException.java | 12 +++++ .../rd/online/repository/UserRepository.java | 2 +- .../online/service/AuthenticationService.java | 13 +++-- .../izh/rd/online/service/IUserService.java | 2 +- .../izh/rd/online/service/UserService.java | 48 ++++++++----------- 7 files changed, 57 insertions(+), 38 deletions(-) create mode 100644 src/main/java/com/epam/izh/rd/online/exception/NotAccessException.java create mode 100644 src/main/java/com/epam/izh/rd/online/exception/SimplePasswordException.java create mode 100644 src/main/java/com/epam/izh/rd/online/exception/UserAlreadyRegisteredException.java diff --git a/src/main/java/com/epam/izh/rd/online/exception/NotAccessException.java b/src/main/java/com/epam/izh/rd/online/exception/NotAccessException.java new file mode 100644 index 0000000..e866fb0 --- /dev/null +++ b/src/main/java/com/epam/izh/rd/online/exception/NotAccessException.java @@ -0,0 +1,9 @@ +package com.epam.izh.rd.online.exception; + +public class NotAccessException extends UnsupportedOperationException { + + public NotAccessException() { + System.out.println("Недостаточно прав для выполнения операции"); + } + +} diff --git a/src/main/java/com/epam/izh/rd/online/exception/SimplePasswordException.java b/src/main/java/com/epam/izh/rd/online/exception/SimplePasswordException.java new file mode 100644 index 0000000..bb96b63 --- /dev/null +++ b/src/main/java/com/epam/izh/rd/online/exception/SimplePasswordException.java @@ -0,0 +1,9 @@ +package com.epam.izh.rd.online.exception; + +public class SimplePasswordException extends Exception { + + public SimplePasswordException() { + System.out.println("Пароль не соответствует требованиям безопасности"); + } + +} diff --git a/src/main/java/com/epam/izh/rd/online/exception/UserAlreadyRegisteredException.java b/src/main/java/com/epam/izh/rd/online/exception/UserAlreadyRegisteredException.java new file mode 100644 index 0000000..25042b5 --- /dev/null +++ b/src/main/java/com/epam/izh/rd/online/exception/UserAlreadyRegisteredException.java @@ -0,0 +1,12 @@ +package com.epam.izh.rd.online.exception; + +import com.epam.izh.rd.online.entity.User; +import com.epam.izh.rd.online.repository.IUserRepository; +import com.epam.izh.rd.online.repository.UserRepository; + +public class UserAlreadyRegisteredException extends Exception { + + public UserAlreadyRegisteredException(User foundUser) { + System.out.println("Пользователь с логином " + foundUser.getLogin() + " уже зарегистрирован"); + } +} diff --git a/src/main/java/com/epam/izh/rd/online/repository/UserRepository.java b/src/main/java/com/epam/izh/rd/online/repository/UserRepository.java index f42865a..574cb70 100644 --- a/src/main/java/com/epam/izh/rd/online/repository/UserRepository.java +++ b/src/main/java/com/epam/izh/rd/online/repository/UserRepository.java @@ -57,7 +57,7 @@ public User findByLogin(String login) { .findFirst().orElse(null); } - @Override // Поиск в БД пароля (^_^) + @Override public User findByPassword(String password) { Objects.requireNonNull(password, "Отсутствует пароль для поиска пользователя"); diff --git a/src/main/java/com/epam/izh/rd/online/service/AuthenticationService.java b/src/main/java/com/epam/izh/rd/online/service/AuthenticationService.java index 7b41c58..a105fb9 100644 --- a/src/main/java/com/epam/izh/rd/online/service/AuthenticationService.java +++ b/src/main/java/com/epam/izh/rd/online/service/AuthenticationService.java @@ -30,7 +30,6 @@ public AuthenticationService(IUserRepository userRepository) { @Override public User login(User user) throws Exception { - User foundUser = userRepository.findByLogin(user.getLogin()); User foundPass = userRepository.findByPassword(user.getPassword()); @@ -38,14 +37,14 @@ public User login(User user) throws Exception { throw new UserNotFoundException(); } - if (foundPass == null) { - throw new NotCorrectPasswordException(); - } + if (foundPass == null || !foundUser.getPassword().equals(foundPass.getPassword())) { + throw new NotCorrectPasswordException(); + } - // Устанавливаем найденного пользователя, который прошел все проверки, как вошедшего в систему. - CurrentUserManager.setCurrentLoggedInUser(foundUser); - return foundUser; + // Устанавливаем найденного пользователя, который прошел все проверки, как вошедшего в систему. + CurrentUserManager.setCurrentLoggedInUser(foundUser); + return foundUser; } diff --git a/src/main/java/com/epam/izh/rd/online/service/IUserService.java b/src/main/java/com/epam/izh/rd/online/service/IUserService.java index de62d43..418bd45 100644 --- a/src/main/java/com/epam/izh/rd/online/service/IUserService.java +++ b/src/main/java/com/epam/izh/rd/online/service/IUserService.java @@ -4,7 +4,7 @@ public interface IUserService { - User register(User user); + User register(User user) throws Exception; void delete(String login); } diff --git a/src/main/java/com/epam/izh/rd/online/service/UserService.java b/src/main/java/com/epam/izh/rd/online/service/UserService.java index 8a1617d..846a442 100644 --- a/src/main/java/com/epam/izh/rd/online/service/UserService.java +++ b/src/main/java/com/epam/izh/rd/online/service/UserService.java @@ -1,9 +1,14 @@ package com.epam.izh.rd.online.service; import com.epam.izh.rd.online.entity.User; +import com.epam.izh.rd.online.exception.NotAccessException; +import com.epam.izh.rd.online.exception.SimplePasswordException; +import com.epam.izh.rd.online.exception.UserAlreadyRegisteredException; import com.epam.izh.rd.online.repository.IUserRepository; import com.epam.izh.rd.online.repository.UserRepository; +import java.util.stream.Collectors; + public class UserService implements IUserService { private IUserRepository userRepository; @@ -30,49 +35,30 @@ public UserService(IUserRepository userRepository) { * @param user - даныне регистрирующегося пользователя */ - // (^_^) - class UserAlreadyRegisteredException extends Throwable { - } - // (^_^) - class SimplePasswordException extends NumberFormatException { - } @Override - public User register(User user) { + public User register(User user) throws Exception { // проверяем заполняемость полей - try { + if (user.getPassword().trim().length() == 0 || user.getLogin().trim().length() == 0) { - throw new IllegalArgumentException(); + throw new IllegalArgumentException("Ошибка в заполнении полей"); } - } - catch (IllegalArgumentException e) { - System.out.println("Ошибка в заполнении полей"); - } // проверяем есть ли в базе юзер с таким же логином - User foundUser = userRepository.findByLogin(user.getLogin()); + User foundUser = userRepository.findByLogin(user.getLogin()); + - try { if (foundUser != null) { - throw new UserAlreadyRegisteredException(); + throw new UserAlreadyRegisteredException(foundUser); } - } - catch (UserAlreadyRegisteredException e) { - System.out.println("Пользователь с логином " + user.getLogin() + " уже зарегистрирован"); - } - // проверяем сложность пароля -try { - Integer.parseInt(user.getPassword()); - -} -catch (SimplePasswordException e) { - System.out.println("Пароль не соответствует требованиям безопасности"); -} + if (user.getPassword().trim().chars().filter(y -> y < 48 || y > 57).mapToObj(String::valueOf).collect(Collectors.toList()).size() < 1) { + throw new SimplePasswordException(); + } // Если все проверки успешно пройдены, сохраняем пользователя в базу return userRepository.save(user); @@ -99,9 +85,13 @@ public User register(User user) { public void delete(String login) { // Здесь необходимо сделать доработку метод +try { - userRepository.deleteByLogin(login); + userRepository.deleteByLogin(login); +} +catch(NotAccessException e) { +} // Здесь необходимо сделать доработку метода } From 448e052d59e4ae5e016bc7cba8c2bbf59928adc1 Mon Sep 17 00:00:00 2001 From: Alexsandr Chevtaev Date: Sun, 16 Aug 2020 11:11:57 +0300 Subject: [PATCH 8/9] =?UTF-8?q?=D0=9C=D0=B5=D1=82=D0=BE=D0=B4=20void=20del?= =?UTF-8?q?ete(String=20login)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epam/izh/rd/online/exception/NotAccessException.java | 2 +- .../java/com/epam/izh/rd/online/service/UserService.java | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/epam/izh/rd/online/exception/NotAccessException.java b/src/main/java/com/epam/izh/rd/online/exception/NotAccessException.java index e866fb0..fc84fd2 100644 --- a/src/main/java/com/epam/izh/rd/online/exception/NotAccessException.java +++ b/src/main/java/com/epam/izh/rd/online/exception/NotAccessException.java @@ -1,6 +1,6 @@ package com.epam.izh.rd.online.exception; -public class NotAccessException extends UnsupportedOperationException { +public class NotAccessException extends Exception { public NotAccessException() { System.out.println("Недостаточно прав для выполнения операции"); diff --git a/src/main/java/com/epam/izh/rd/online/service/UserService.java b/src/main/java/com/epam/izh/rd/online/service/UserService.java index 846a442..dd0ef25 100644 --- a/src/main/java/com/epam/izh/rd/online/service/UserService.java +++ b/src/main/java/com/epam/izh/rd/online/service/UserService.java @@ -89,7 +89,13 @@ public void delete(String login) { userRepository.deleteByLogin(login); } -catch(NotAccessException e) { +catch(UnsupportedOperationException e) { + + try { throw new NotAccessException();} + + catch(NotAccessException b){ + + } } // Здесь необходимо сделать доработку метода From 0f758e962789c0019f38e8d6b7a71c97d328cdb5 Mon Sep 17 00:00:00 2001 From: Alexsandr Chevtaev Date: Sun, 16 Aug 2020 13:31:46 +0300 Subject: [PATCH 9/9] =?UTF-8?q?=D0=9F=D1=80=D0=B0=D0=BA=D1=82=D0=B8=D1=87?= =?UTF-8?q?=D0=B5=D1=81=D0=BA=D0=BE=D0=B5=20=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=B4=D0=BB=D1=8F=20=D0=BC=D0=BE=D0=B4=D1=83?= =?UTF-8?q?=D0=BB=D1=8F=2011.=20=D0=92=D1=81=D0=B5=20=D0=B7=D0=B5=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=BE=D0=B5.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rd/online/exception/NotAccessException.java | 2 +- .../rd/online/service/AuthenticationService.java | 9 ++++----- .../epam/izh/rd/online/service/UserService.java | 16 ++++++---------- 3 files changed, 11 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/epam/izh/rd/online/exception/NotAccessException.java b/src/main/java/com/epam/izh/rd/online/exception/NotAccessException.java index fc84fd2..e866fb0 100644 --- a/src/main/java/com/epam/izh/rd/online/exception/NotAccessException.java +++ b/src/main/java/com/epam/izh/rd/online/exception/NotAccessException.java @@ -1,6 +1,6 @@ package com.epam.izh.rd.online.exception; -public class NotAccessException extends Exception { +public class NotAccessException extends UnsupportedOperationException { public NotAccessException() { System.out.println("Недостаточно прав для выполнения операции"); diff --git a/src/main/java/com/epam/izh/rd/online/service/AuthenticationService.java b/src/main/java/com/epam/izh/rd/online/service/AuthenticationService.java index a105fb9..a6165c6 100644 --- a/src/main/java/com/epam/izh/rd/online/service/AuthenticationService.java +++ b/src/main/java/com/epam/izh/rd/online/service/AuthenticationService.java @@ -30,14 +30,13 @@ public AuthenticationService(IUserRepository userRepository) { @Override public User login(User user) throws Exception { - User foundUser = userRepository.findByLogin(user.getLogin()); - User foundPass = userRepository.findByPassword(user.getPassword()); - - if (foundUser == null) { + if (userRepository.findByLogin(user.getLogin()) == null) { throw new UserNotFoundException(); } - if (foundPass == null || !foundUser.getPassword().equals(foundPass.getPassword())) { + User foundUser = userRepository.findByLogin(user.getLogin()); + + if (userRepository.findByPassword(user.getPassword()) == null || !foundUser.getPassword().equals(userRepository.findByPassword(user.getPassword()).getPassword())) { throw new NotCorrectPasswordException(); } diff --git a/src/main/java/com/epam/izh/rd/online/service/UserService.java b/src/main/java/com/epam/izh/rd/online/service/UserService.java index dd0ef25..2d22edd 100644 --- a/src/main/java/com/epam/izh/rd/online/service/UserService.java +++ b/src/main/java/com/epam/izh/rd/online/service/UserService.java @@ -85,19 +85,15 @@ public User register(User user) throws Exception { public void delete(String login) { // Здесь необходимо сделать доработку метод -try { + try { - userRepository.deleteByLogin(login); -} -catch(UnsupportedOperationException e) { - - try { throw new NotAccessException();} + userRepository.deleteByLogin(login); + } + catch(UnsupportedOperationException e) { - catch(NotAccessException b){ + throw new NotAccessException(); - } - -} + } // Здесь необходимо сделать доработку метода }