-
Notifications
You must be signed in to change notification settings - Fork 63
Expand file tree
/
Copy pathAuthenticationService.java
More file actions
58 lines (48 loc) · 2.88 KB
/
AuthenticationService.java
File metadata and controls
58 lines (48 loc) · 2.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package com.epam.izh.rd.online.service;
import com.epam.izh.rd.online.entity.User;
import com.epam.izh.rd.online.exception.NotCorrectPasswordException;
import com.epam.izh.rd.online.exception.UserNotFoundException;
import com.epam.izh.rd.online.repository.IUserRepository;
public class AuthenticationService implements IAuthenticationService {
private IUserRepository userRepository;
public AuthenticationService(IUserRepository userRepository) {
this.userRepository = userRepository;
}
/**
* Необходимо доработать данный метод следующим функционлом:
* <p>
* 1) Необходимо проверять наличие авторизующегося пользователя в списке зарегистрированных пользователей.
* Если пользователь не найден, необходимо выбрасывать проверяемое исключение с названием UserNotFoundException
* и текстом ошибки "Пользователь с таким логином не найден".
* <p>
* 2) Необходимо проверять, что пароль, который ввел пользователь совпадает с тем, что хранится в базе.
* Если пароли не совпадают, необходимо выбрасывать исключение с названием NotCorrectPasswordException и
* текстом "Пароль введен неверно!"
*
* @param user - пользователь проходящий авторизацию
*/
@Override
public User login(User user) throws UserNotFoundException, NotCorrectPasswordException {
// Находим пользователя в базе
User foundUser = userRepository.findByLogin(user.getLogin());
//
// Здесь необходимо реализовать перечисленные выше проверки
//
if (foundUser == null){
throw new UserNotFoundException("Пользователь с таким логином не найден");
}
if ( !( user.getLogin().compareTo(foundUser.getPassword()) ==0 ) ){
throw new NotCorrectPasswordException("Пароль введен неверно!");
}
// Устанавливаем найденного пользователя, который прошел все проверки, как вошедшего в систему.
CurrentUserManager.setCurrentLoggedInUser(foundUser);
return foundUser;
}
/**
* Данный метод очищает данные о текущем (активном) пользователе.
*/
@Override
public void logout() {
CurrentUserManager.setCurrentLoggedInUser(null);
}
}