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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
### IntelliJ IDEA ###
.idea/
out/
!**/src/main/**/out/
!**/src/test/**/out/
Expand Down
3 changes: 0 additions & 3 deletions .idea/.gitignore

This file was deleted.

6 changes: 0 additions & 6 deletions .idea/misc.xml

This file was deleted.

8 changes: 0 additions & 8 deletions .idea/modules.xml

This file was deleted.

6 changes: 0 additions & 6 deletions .idea/vcs.xml

This file was deleted.

90 changes: 90 additions & 0 deletions src/Account.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
import java.util.regex.Pattern;

public class Account {
static int counter =1;
private int id = counter;



private String name;

/**
* Конструктор по умолчанию
*/
public Account(){
this.name = "user";
}

/**
* Конструктор с name
* @param name имя пользователя
*/
public Account(String name) {
this.name = name;
}

/**
* Геттер ID
* @return ID пользователя
*/
public int getId() {
return id;
}

/**
* Сетер
* @param name имя пользователя
*/
public void setName(String name) {
this.name = name;
}

/**
* Геттер
* @return имя пользователя
*/
public String getName() {
return name;
}

/**
* Функция Аунтификации пользователя
* @param login Длина должна быть меньше 20 символов и должен содержать только латинские буквы,
* цифры и знак подчеркивания.
* @param password Длина должна быть меньше 20 символов и должен содержать только латинские буквы,
* цифры и знак подчеркивания.
* @param confirmPassword Должен быть равен <b>password</b> и длина должна быть меньше 20 символов,
* должен содержать только латинские буквы, цифры и знак подчеркивания.
* @return Boolean состояние авторизации
* @throws WrongLoginException Выбрасывается если <b>login</b> длиннее 20 символов и содержит,
* что-то кроме латинских букв, цифр и знаков подчеркивания.
* @throws WrongPasswordException Выбрасывается если <b>password</b> и <b>confirmPassword</b> неравны и\или
* длиннее 20 символов, содержит, что-то кроме латинских букв,
* цифр и знаков подчеркивания.
*/
public static boolean authentification(String login,String password, String confirmPassword) throws Exception{
boolean auth = false;
try {
boolean loginCheck = Pattern.compile("[A-Za-z0-9]+").matcher(login).find() && login.length()<20;
boolean passwordCheck = Pattern.compile("[A-Za-z0-9]+").matcher(password).find()
&& login.length()<20 && (password.equals(confirmPassword));
if (loginCheck && passwordCheck) {
auth = true;
System.out.println("You authorizated!");
}
else if (!loginCheck) {
throw new WrongLoginException("Неверный логин!");
}
else if(!passwordCheck) {
throw new WrongPasswordException("Неверный пароль!");
}
}
catch (WrongLoginException | WrongPasswordException e){
auth = false;
System.out.println("ERR: "+ e.getMessage());
}
finally {
return auth;
}
}
}
35 changes: 23 additions & 12 deletions src/Main.java
Original file line number Diff line number Diff line change
@@ -1,15 +1,26 @@
//TIP To <b>Run</b> code, press <shortcut actionId="Run"/> or
// click the <icon src="AllIcons.Actions.Execute"/> icon in the gutter.
/** Класс main
//✅ Создать статический метод который принимает на вход три параметра: login, password и confirmPassword.
//✅ Login должен содержать только латинские буквы, цифры и знак подчеркивания.
//✅ Длина login должна быть меньше 20 символов. Если login не соответствует этим требованиям, необходимо выбросить WrongLoginException.
//✅ Password должен содержать только латинские буквы, цифры и знак подчеркивания. Длина password должна быть меньше 20 символов.
Также password и confirmPassword должны быть равны. Если password не соответствует этим требованиям, необходимо выбросить
WrongPasswordException.
//✅ WrongPasswordException и WrongLoginException - пользовательские классы исключения с двумя конструкторами
//✅ один по умолчанию, второй принимает сообщение исключения и передает его в конструктор класса Exception.
//✅ Обработка исключений проводится внутри метода.
//✅ Используем multi-catch block.
//✅ Метод возвращает true, если значения верны или false в другом случае.
*/
public class Main {
public static void main(String[] args) {
//TIP Press <shortcut actionId="ShowIntentionActions"/> with your caret at the highlighted text
// to see how IntelliJ IDEA suggests fixing it.
System.out.printf("Hello and welcome!");

for (int i = 1; i <= 5; i++) {
//TIP Press <shortcut actionId="Debug"/> to start debugging your code. We have set one <icon src="AllIcons.Debugger.Db_set_breakpoint"/> breakpoint
// for you, but you can always add more by pressing <shortcut actionId="ToggleLineBreakpoint"/>.
System.out.println("i test git= " + i);
public static void main(String[] args) throws Exception {
String login = "Default_Login";
String password = "Default_Pыassword23";
String confirmPassword = "Default_Password123";
if (args.length == 3){
login = args[0];
password = args[1];
confirmPassword = args[2];
}
System.out.println("Состояние вашей авторизации: "+Account.authentification(login,password,confirmPassword));
}
}
}
11 changes: 11 additions & 0 deletions src/WrongLoginException.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/**
* Пользовательский класс ошибки для обозначения неверного логина
*/
public class WrongLoginException extends Exception {
public WrongLoginException() {
super();
}
public WrongLoginException(String message) {
super(message);
}
}
11 changes: 11 additions & 0 deletions src/WrongPasswordException.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/**
* Пользовательский класс ошибки для обозначения неверного пароля
*/
public class WrongPasswordException extends Exception {
public WrongPasswordException() {
super();
}
public WrongPasswordException(String message) {
super(message);
}
}