Compare commits
4 Commits
New-architecture
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 3377660ebe | |||
| 0cb88bd69f | |||
| 18724d00f4 | |||
| f525aaec3e |
@@ -0,0 +1,34 @@
|
|||||||
|
# This workflow will build a package using Maven and then publish it to GitHub packages when a release is created
|
||||||
|
# For more information see: https://github.com/actions/setup-java/blob/main/docs/advanced-usage.md#apache-maven-with-a-settings-path
|
||||||
|
|
||||||
|
name: Maven Package
|
||||||
|
|
||||||
|
on:
|
||||||
|
release:
|
||||||
|
types: [created]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
packages: write
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Set up JDK 11
|
||||||
|
uses: actions/setup-java@v4
|
||||||
|
with:
|
||||||
|
java-version: '17'
|
||||||
|
distribution: 'temurin'
|
||||||
|
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
|
||||||
|
settings-path: ${{ github.workspace }} # location for the settings.xml file
|
||||||
|
|
||||||
|
- name: Build with Maven
|
||||||
|
run: mvn -B package --file pom.xml
|
||||||
|
|
||||||
|
- name: Publish to GitHub Packages Apache Maven
|
||||||
|
run: mvn deploy -s $GITHUB_WORKSPACE/settings.xml
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ github.token }}
|
||||||
+10
@@ -1,3 +1,13 @@
|
|||||||
# TaskTraker_Server
|
# TaskTraker_Server
|
||||||
|
|
||||||
Это сервер для приложения TaskTraker. Здесь намеренно удалён класс API_KEYS))). Клиент: https://github.com/Jiga228/TaskTraker.git
|
Это сервер для приложения TaskTraker. Здесь намеренно удалён класс API_KEYS))). Клиент: https://github.com/Jiga228/TaskTraker.git
|
||||||
|
|
||||||
|
ДЛя развёртывания приложения вам необходимо создать класс API_KEYS с полями:
|
||||||
|
|
||||||
|
public static final String ADMIN_PASSWORD (Пароль дот админ панели)
|
||||||
|
|
||||||
|
public static final String DB_LOGIN (Логин к вашей БД)
|
||||||
|
|
||||||
|
public static final String DB_PASSWORD (Пароль к вашей БД)
|
||||||
|
|
||||||
|
public static final String DB_URL (Ссылка на БД)
|
||||||
@@ -47,24 +47,27 @@ public class DataBase {
|
|||||||
if(!connection.isValid(100))
|
if(!connection.isValid(100))
|
||||||
OpenConnection();
|
OpenConnection();
|
||||||
|
|
||||||
PreparedStatement saveUser_stmt = connection.prepareStatement("INSERT INTO users(login, password) VALUE (?, ?)");
|
PreparedStatement saveUser_stmt = connection.prepareStatement("INSERT INTO users_v2(login, password) VALUE (?, ?)");
|
||||||
saveUser_stmt.setString(1, login);
|
saveUser_stmt.setString(1, login);
|
||||||
saveUser_stmt.setString(2, password);
|
saveUser_stmt.setString(2, password);
|
||||||
saveUser_stmt.executeUpdate();
|
saveUser_stmt.executeUpdate();
|
||||||
|
|
||||||
PreparedStatement findID = connection.prepareStatement("SELECT id FROM users WHERE login = ?");
|
PreparedStatement findID = connection.prepareStatement("SELECT id FROM users_v2 WHERE login = ?");
|
||||||
findID.setString(1, login);
|
findID.setString(1, login);
|
||||||
ResultSet newID = findID.executeQuery();
|
ResultSet newID = findID.executeQuery();
|
||||||
|
|
||||||
newID.next();
|
newID.next();
|
||||||
return new User(newID.getInt(1), login, password);
|
User user = new User(newID.getInt(1), login, password);
|
||||||
|
|
||||||
|
newID.close();
|
||||||
|
return user;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AddTask(Task task, User user) throws SQLException {
|
public void AddTask(Task task, User user) throws SQLException {
|
||||||
if(!connection.isValid(100))
|
if(!connection.isValid(100))
|
||||||
OpenConnection();
|
OpenConnection();
|
||||||
|
|
||||||
PreparedStatement addTask = connection.prepareStatement("INSERT INTO tasks(ID," +
|
PreparedStatement addTask = connection.prepareStatement("INSERT INTO tasks_v2(ID," +
|
||||||
" TaskName," +
|
" TaskName," +
|
||||||
" TaskDescription," +
|
" TaskDescription," +
|
||||||
" TaskDate," +
|
" TaskDate," +
|
||||||
@@ -85,7 +88,7 @@ public class DataBase {
|
|||||||
if(!connection.isValid(100))
|
if(!connection.isValid(100))
|
||||||
OpenConnection();
|
OpenConnection();
|
||||||
|
|
||||||
PreparedStatement addTask = connection.prepareStatement("UPDATE tasks SET TaskName = ?," +
|
PreparedStatement addTask = connection.prepareStatement("UPDATE tasks_v2 SET TaskName = ?," +
|
||||||
" TaskDescription = ?," +
|
" TaskDescription = ?," +
|
||||||
" TaskDate = ?," +
|
" TaskDate = ?," +
|
||||||
" TaskTime = ?" +
|
" TaskTime = ?" +
|
||||||
@@ -104,7 +107,7 @@ public class DataBase {
|
|||||||
if(!connection.isValid(100))
|
if(!connection.isValid(100))
|
||||||
OpenConnection();
|
OpenConnection();
|
||||||
|
|
||||||
PreparedStatement remove = connection.prepareStatement("DELETE FROM tasks WHERE ID = ? AND UserOwner = ?");
|
PreparedStatement remove = connection.prepareStatement("DELETE FROM tasks_v2 WHERE ID = ? AND UserOwner = ?");
|
||||||
remove.setLong(1, taskID);
|
remove.setLong(1, taskID);
|
||||||
remove.setLong(2, user.getID());
|
remove.setLong(2, user.getID());
|
||||||
remove.executeUpdate();
|
remove.executeUpdate();
|
||||||
@@ -114,7 +117,7 @@ public class DataBase {
|
|||||||
if(!connection.isValid(100))
|
if(!connection.isValid(100))
|
||||||
OpenConnection();
|
OpenConnection();
|
||||||
|
|
||||||
PreparedStatement update = connection.prepareStatement("UPDATE users SET password = ? WHERE id = ?");
|
PreparedStatement update = connection.prepareStatement("UPDATE users_v2 SET password = ? WHERE id = ?");
|
||||||
update.setString(1, password);
|
update.setString(1, password);
|
||||||
update.setInt(2, userID);
|
update.setInt(2, userID);
|
||||||
update.executeUpdate();
|
update.executeUpdate();
|
||||||
@@ -124,7 +127,7 @@ public class DataBase {
|
|||||||
if(!connection.isValid(100))
|
if(!connection.isValid(100))
|
||||||
OpenConnection();
|
OpenConnection();
|
||||||
|
|
||||||
PreparedStatement findTasks = connection.prepareStatement("SELECT * FROM tasks WHERE UserOwner = ?");
|
PreparedStatement findTasks = connection.prepareStatement("SELECT * FROM tasks_v2 WHERE UserOwner = ?");
|
||||||
findTasks.setInt(1, user.getID());
|
findTasks.setInt(1, user.getID());
|
||||||
ResultSet result = findTasks.executeQuery();
|
ResultSet result = findTasks.executeQuery();
|
||||||
|
|
||||||
@@ -138,6 +141,7 @@ public class DataBase {
|
|||||||
result.getString(6)); // TaskTime
|
result.getString(6)); // TaskTime
|
||||||
taskList.add(task);
|
taskList.add(task);
|
||||||
}
|
}
|
||||||
|
result.close();
|
||||||
return taskList;
|
return taskList;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -145,15 +149,18 @@ public class DataBase {
|
|||||||
if(!connection.isValid(100))
|
if(!connection.isValid(100))
|
||||||
OpenConnection();
|
OpenConnection();
|
||||||
|
|
||||||
PreparedStatement getUser_stmt = connection.prepareStatement("SELECT * FROM users WHERE login = ?");
|
PreparedStatement getUser_stmt = connection.prepareStatement("SELECT * FROM users_v2 WHERE login = ?");
|
||||||
getUser_stmt.setString(1, login);
|
getUser_stmt.setString(1, login);
|
||||||
ResultSet resultSet = getUser_stmt.executeQuery();
|
ResultSet resultSet = getUser_stmt.executeQuery();
|
||||||
if(!resultSet.next())
|
if(!resultSet.next()) {
|
||||||
|
resultSet.close();
|
||||||
return null;
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
int id = resultSet.getInt(1);
|
int id = resultSet.getInt(1);
|
||||||
String pass = resultSet.getNString(3);
|
String pass = resultSet.getNString(3);
|
||||||
|
|
||||||
|
resultSet.close();
|
||||||
return new User(id, login, pass);
|
return new User(id, login, pass);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,8 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
|
|||||||
import org.springframework.context.ConfigurableApplicationContext;
|
import org.springframework.context.ConfigurableApplicationContext;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.security.MessageDigest;
|
||||||
|
import java.security.NoSuchAlgorithmException;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -37,6 +39,25 @@ public class TaskTrakerServerApplication {
|
|||||||
System.exit(code);
|
System.exit(code);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static String convertByteArrayToHexString(byte[] arrayBytes) {
|
||||||
|
StringBuilder stringBuffer = new StringBuilder();
|
||||||
|
for (byte arrayByte : arrayBytes) {
|
||||||
|
stringBuffer.append(Integer.toString((arrayByte & 0xff) + 0x100, 16)
|
||||||
|
.substring(1));
|
||||||
|
}
|
||||||
|
return stringBuffer.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String getMD5Hash(String input) {
|
||||||
|
try {
|
||||||
|
MessageDigest md = MessageDigest.getInstance("MD5");
|
||||||
|
byte[] messageDigest = md.digest(input.getBytes());
|
||||||
|
return convertByteArrayToHexString(messageDigest);
|
||||||
|
} catch (NoSuchAlgorithmException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@GetMapping("/admin/shutdown")
|
@GetMapping("/admin/shutdown")
|
||||||
void shutdown(@RequestParam(name = "password", defaultValue = "null") String password) {
|
void shutdown(@RequestParam(name = "password", defaultValue = "null") String password) {
|
||||||
if(!password.equals(API_KEYS.ADMIN_PASSWORD))
|
if(!password.equals(API_KEYS.ADMIN_PASSWORD))
|
||||||
@@ -53,8 +74,9 @@ public class TaskTrakerServerApplication {
|
|||||||
return "{\n\t\"status\":\"error\"\n}";
|
return "{\n\t\"status\":\"error\"\n}";
|
||||||
else {
|
else {
|
||||||
try {
|
try {
|
||||||
|
String passHash = getMD5Hash(pass);
|
||||||
User user = UserRepository.getRepository().getUserByLogin(login);
|
User user = UserRepository.getRepository().getUserByLogin(login);
|
||||||
if (user == null || !user.getPassword().equals(pass))
|
if (user == null || !user.getPassword().equals(passHash))
|
||||||
return "{\n\t\"status\":\"error\"\n}";
|
return "{\n\t\"status\":\"error\"\n}";
|
||||||
else
|
else
|
||||||
return "{\n\t\"status\":\"ok\"\n}";
|
return "{\n\t\"status\":\"ok\"\n}";
|
||||||
@@ -75,7 +97,8 @@ public class TaskTrakerServerApplication {
|
|||||||
else if (login.equals("null") || pass.equals("null"))
|
else if (login.equals("null") || pass.equals("null"))
|
||||||
return "{\n\t\"status\":\"error\",\n\t\"token\":\"null\"\n}";
|
return "{\n\t\"status\":\"error\",\n\t\"token\":\"null\"\n}";
|
||||||
try {
|
try {
|
||||||
User user = UserRepository.getRepository().AddUser(login, pass);
|
String passHash = getMD5Hash(pass);
|
||||||
|
User user = UserRepository.getRepository().AddUser(login, passHash);
|
||||||
if(user == null)
|
if(user == null)
|
||||||
return "{\n\t\"status\":\"error\"\n}";
|
return "{\n\t\"status\":\"error\"\n}";
|
||||||
|
|
||||||
@@ -94,11 +117,13 @@ public class TaskTrakerServerApplication {
|
|||||||
return "{\n\t\"status\":\"error\"\n}";
|
return "{\n\t\"status\":\"error\"\n}";
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
String passHash = getMD5Hash(oldPassword);
|
||||||
User user = UserRepository.getRepository().getUserByLogin(login);
|
User user = UserRepository.getRepository().getUserByLogin(login);
|
||||||
if(user == null || !user.getPassword().equals(oldPassword))
|
if(user == null || !user.getPassword().equals(passHash))
|
||||||
return "{\n\t\"status\":\"error\"\n}";
|
return "{\n\t\"status\":\"error\"\n}";
|
||||||
|
|
||||||
user.setPassword(newPassword);
|
passHash = getMD5Hash(newPassword);
|
||||||
|
user.setPassword(passHash);
|
||||||
return "{\n\t\"status\":\"ok\"\n}";
|
return "{\n\t\"status\":\"ok\"\n}";
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
System.out.println(e.getMessage());
|
System.out.println(e.getMessage());
|
||||||
@@ -112,9 +137,10 @@ public class TaskTrakerServerApplication {
|
|||||||
@RequestParam(name = "id") long taskID) {
|
@RequestParam(name = "id") long taskID) {
|
||||||
if (!login.equals("null") || !pass.equals("null")) {
|
if (!login.equals("null") || !pass.equals("null")) {
|
||||||
try {
|
try {
|
||||||
|
String passHash = getMD5Hash(pass);
|
||||||
User user = UserRepository.getRepository().getUserByLogin(login);
|
User user = UserRepository.getRepository().getUserByLogin(login);
|
||||||
|
|
||||||
if (user == null || !user.getPassword().equals(pass))
|
if (user == null || !user.getPassword().equals(passHash))
|
||||||
return new Task(0, 0, null, null, null, null);
|
return new Task(0, 0, null, null, null, null);
|
||||||
|
|
||||||
List<Task> taskList = DataBase.getInstance().getTaskList(user);
|
List<Task> taskList = DataBase.getInstance().getTaskList(user);
|
||||||
@@ -138,8 +164,9 @@ public class TaskTrakerServerApplication {
|
|||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
else {
|
else {
|
||||||
try {
|
try {
|
||||||
|
String passHash = getMD5Hash(pass);
|
||||||
User user = UserRepository.getRepository().getUserByLogin(login);
|
User user = UserRepository.getRepository().getUserByLogin(login);
|
||||||
if (user == null || !user.getPassword().equals(pass))
|
if (user == null || !user.getPassword().equals(passHash))
|
||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
else
|
else
|
||||||
return DataBase.getInstance().getTaskList(user);
|
return DataBase.getInstance().getTaskList(user);
|
||||||
@@ -156,8 +183,9 @@ public class TaskTrakerServerApplication {
|
|||||||
@RequestBody Task task) {
|
@RequestBody Task task) {
|
||||||
if (!login.equals("null") && !pass.equals("null") && task != null) {
|
if (!login.equals("null") && !pass.equals("null") && task != null) {
|
||||||
try {
|
try {
|
||||||
|
String passHash = getMD5Hash(pass);
|
||||||
User user = UserRepository.getRepository().getUserByLogin(login);
|
User user = UserRepository.getRepository().getUserByLogin(login);
|
||||||
if (user == null || !user.getPassword().equals(pass))
|
if (user == null || !user.getPassword().equals(passHash))
|
||||||
return;
|
return;
|
||||||
DataBase.getInstance().AddTask(task, user);
|
DataBase.getInstance().AddTask(task, user);
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
@@ -172,8 +200,9 @@ public class TaskTrakerServerApplication {
|
|||||||
@RequestBody Task task) {
|
@RequestBody Task task) {
|
||||||
if (!login.equals("null") && !pass.equals("null") && task != null) {
|
if (!login.equals("null") && !pass.equals("null") && task != null) {
|
||||||
try {
|
try {
|
||||||
|
String passHash = getMD5Hash(pass);
|
||||||
User user = UserRepository.getRepository().getUserByLogin(login);
|
User user = UserRepository.getRepository().getUserByLogin(login);
|
||||||
if (user == null || !user.getPassword().equals(pass))
|
if (user == null || !user.getPassword().equals(passHash))
|
||||||
return;
|
return;
|
||||||
DataBase.getInstance().UpdateTask(task, user);
|
DataBase.getInstance().UpdateTask(task, user);
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
@@ -188,8 +217,9 @@ public class TaskTrakerServerApplication {
|
|||||||
@RequestParam(name = "id", defaultValue = "-1") long id) {
|
@RequestParam(name = "id", defaultValue = "-1") long id) {
|
||||||
if (!login.equals("null") && !pass.equals("null") && id != -1) {
|
if (!login.equals("null") && !pass.equals("null") && id != -1) {
|
||||||
try {
|
try {
|
||||||
|
String passHash = getMD5Hash(pass);
|
||||||
User user = UserRepository.getRepository().getUserByLogin(login);
|
User user = UserRepository.getRepository().getUserByLogin(login);
|
||||||
if (user == null || !user.getPassword().equals(pass))
|
if (user == null || !user.getPassword().equals(passHash))
|
||||||
return;
|
return;
|
||||||
DataBase.getInstance().RemoveTask(id, user);
|
DataBase.getInstance().RemoveTask(id, user);
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 15 KiB |
Reference in New Issue
Block a user