Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions java-exceptions-template.iml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter:5.5.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-api:5.5.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.apiguardian:apiguardian-api:1.1.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.opentest4j:opentest4j:1.2.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-commons:1.5.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-params:5.5.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-engine:5.5.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-engine:1.5.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.projectlombok:lombok:1.18.10" level="project" />
</component>
</module>
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package com.epam.izh.rd.online.exception;

public class NotAccessException extends Exception {
public NotAccessException(String s) {
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.epam.izh.rd.online.exception;

public class NotCorrectPasswordException extends Exception {
public NotCorrectPasswordException(String s) {
System.err.println(s);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package com.epam.izh.rd.online.exception;

public class SimplePasswordException extends Exception {
public SimplePasswordException(String s) {
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package com.epam.izh.rd.online.exception;

public class UserAlreadyRegisteredException extends Exception {
public UserAlreadyRegisteredException(String s) {
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.epam.izh.rd.online.exception;

public class UserNotFoundException extends Exception {
public UserNotFoundException(String s) {
System.err.println(s);
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
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 {
Expand All @@ -25,13 +27,19 @@ public AuthenticationService(IUserRepository userRepository) {
* @param user - пользователь проходящий авторизацию
*/
@Override
public User login(User user) {
public User login(User user) throws UserNotFoundException, NotCorrectPasswordException {
// Находим пользователя в базе
User foundUser = userRepository.findByLogin(user.getLogin());

//
// Здесь необходимо реализовать перечисленные выше проверки
//
if(foundUser == null){
throw new UserNotFoundException("Пользователь с таким логином не найден");
}
if(!foundUser.getPassword().equals(user.getPassword())){
throw new NotCorrectPasswordException("Пароль введен неверно!") ;
}

// Устанавливаем найденного пользователя, который прошел все проверки, как вошедшего в систему.
CurrentUserManager.setCurrentLoggedInUser(foundUser);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
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;

public interface IAuthenticationService {
User login(User user);
User login(User user) throws UserNotFoundException, NotCorrectPasswordException;

void logout();
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
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;

public interface IUserService {

User register(User user);
User register(User user) throws UserAlreadyRegisteredException, SimplePasswordException;

void delete(String login);
void delete(String login) throws NotAccessException;
}
20 changes: 17 additions & 3 deletions src/main/java/com/epam/izh/rd/online/service/UserService.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
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;

Expand Down Expand Up @@ -30,11 +33,17 @@ public UserService(IUserRepository userRepository) {
* @param user - даныне регистрирующегося пользователя
*/
@Override
public User register(User user) {
public User register(User user) throws UserAlreadyRegisteredException, SimplePasswordException {

//
// Здесь необходимо реализовать перечисленные выше проверки
//
if(user.getPassword().isEmpty() || user.getLogin().isEmpty())
throw new IllegalArgumentException("Ошибка в заполнении полей");
if(userRepository.findByLogin(user.getLogin()) != null)
throw new UserAlreadyRegisteredException("Пользователь с логином" + user.getLogin() + " уже зарегистрирован");
if(user.getPassword().matches("\\d*"))
throw new SimplePasswordException("Пароль не соответствует требованиям безопасности") ;

// Если все проверки успешно пройдены, сохраняем пользователя в базу
return userRepository.save(user);
Expand All @@ -58,11 +67,16 @@ public User register(User user) {
*
* @param login
*/
public void delete(String login) {
public void delete(String login) throws NotAccessException {

// Здесь необходимо сделать доработку метод

try {
userRepository.deleteByLogin(login);
} catch (UnsupportedOperationException e){
throw new NotAccessException("Недостаточно прав для выполнения операции");
}



// Здесь необходимо сделать доработку метода

Expand Down