diff --git a/.idea/runConfigurations/Build__w_o_Tests_.xml b/.idea/runConfigurations/Build__w_o_Tests_.xml
new file mode 100644
index 0000000..5913813
--- /dev/null
+++ b/.idea/runConfigurations/Build__w_o_Tests_.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 2dcb451..90bb7ed 100644
--- a/pom.xml
+++ b/pom.xml
@@ -54,6 +54,22 @@
commons-io
2.11.0
+
+
+ org.springframework.boot
+ spring-boot-starter-data-jpa
+
+
+
+ org.mariadb.jdbc
+ mariadb-java-client
+ runtime
+
+
+
+ org.springframework.boot
+ spring-boot-starter-security
+
diff --git a/src/main/java/com/icedberries/UBFunkeysServer/ArkOne/ArkOneController.java b/src/main/java/com/icedberries/UBFunkeysServer/ArkOne/ArkOneController.java
index 2003d19..beb051a 100644
--- a/src/main/java/com/icedberries/UBFunkeysServer/ArkOne/ArkOneController.java
+++ b/src/main/java/com/icedberries/UBFunkeysServer/ArkOne/ArkOneController.java
@@ -18,6 +18,9 @@ public class ArkOneController implements TcpHandler {
String xmlData = new String(data);
System.out.println("[ArkOne] New Request: " + xmlData);
+ //TODO: USE THAT FOR PASSWORD ENCRYPTION FOR STORING IN THE DB
+ //TODO: SEE THIS ARTICLE FOR ENCODING: https://www.baeldung.com/spring-security-registration-password-encoding-bcrypt
+
try {
connection.send(xmlData.toUpperCase().getBytes());
} catch (IOException e) {
diff --git a/src/main/java/com/icedberries/UBFunkeysServer/Galaxy/GalaxyServer.java b/src/main/java/com/icedberries/UBFunkeysServer/Galaxy/GalaxyServer.java
index 9ad55ab..a6de42e 100644
--- a/src/main/java/com/icedberries/UBFunkeysServer/Galaxy/GalaxyServer.java
+++ b/src/main/java/com/icedberries/UBFunkeysServer/Galaxy/GalaxyServer.java
@@ -77,6 +77,7 @@ public class GalaxyServer {
} catch (Exception e) {
// File doesn't exist error caught here
System.out.println(e.getMessage());
+ e.printStackTrace();
// Set the error code
errorCode = HttpServletResponse.SC_NOT_FOUND;
@@ -161,7 +162,7 @@ public class GalaxyServer {
// Send successful
response = "";
} else {
- response = "";
+ response = "";
}
return new ResponseEntity<>(response, HttpStatus.OK);
}
diff --git a/src/main/java/com/icedberries/UBFunkeysServer/UBFunkeysServerApplication.java b/src/main/java/com/icedberries/UBFunkeysServer/UBFunkeysServerApplication.java
index bffbcea..7eca9fa 100644
--- a/src/main/java/com/icedberries/UBFunkeysServer/UBFunkeysServerApplication.java
+++ b/src/main/java/com/icedberries/UBFunkeysServer/UBFunkeysServerApplication.java
@@ -2,7 +2,6 @@ package com.icedberries.UBFunkeysServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication(scanBasePackages = {"com.icedberries", "javagrinko.spring"})
public class UBFunkeysServerApplication {
diff --git a/src/main/java/com/icedberries/UBFunkeysServer/config/Password.java b/src/main/java/com/icedberries/UBFunkeysServer/config/Password.java
new file mode 100644
index 0000000..ed6f8cf
--- /dev/null
+++ b/src/main/java/com/icedberries/UBFunkeysServer/config/Password.java
@@ -0,0 +1,19 @@
+package com.icedberries.UBFunkeysServer.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+import org.springframework.security.crypto.password.PasswordEncoder;
+
+import java.security.SecureRandom;
+
+@Configuration
+public class Password {
+
+ private static final Integer STRENGTH = 15;
+
+ @Bean
+ public PasswordEncoder encoder() {
+ return new BCryptPasswordEncoder(STRENGTH, new SecureRandom());
+ }
+}
diff --git a/src/main/java/com/icedberries/UBFunkeysServer/domain/Crib.java b/src/main/java/com/icedberries/UBFunkeysServer/domain/Crib.java
new file mode 100644
index 0000000..43323f8
--- /dev/null
+++ b/src/main/java/com/icedberries/UBFunkeysServer/domain/Crib.java
@@ -0,0 +1,33 @@
+package com.icedberries.UBFunkeysServer.domain;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+@Getter
+@Setter
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@Entity
+@Table(name = "Cribs")
+public class Crib {
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ private Integer id;
+
+ private String cribName;
+
+ private String username;
+
+ private String profileData;
+}
diff --git a/src/main/java/com/icedberries/UBFunkeysServer/domain/User.java b/src/main/java/com/icedberries/UBFunkeysServer/domain/User.java
new file mode 100644
index 0000000..041efd3
--- /dev/null
+++ b/src/main/java/com/icedberries/UBFunkeysServer/domain/User.java
@@ -0,0 +1,35 @@
+package com.icedberries.UBFunkeysServer.domain;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+@Getter
+@Setter
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@Entity
+@Table(name = "Users")
+public class User {
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ private Integer UUID;
+
+ private String username;
+
+ private String password;
+
+ private String securityQuestion;
+
+ private String securityAnswer;
+}
diff --git a/src/main/java/com/icedberries/UBFunkeysServer/repository/CribRepository.java b/src/main/java/com/icedberries/UBFunkeysServer/repository/CribRepository.java
new file mode 100644
index 0000000..5301352
--- /dev/null
+++ b/src/main/java/com/icedberries/UBFunkeysServer/repository/CribRepository.java
@@ -0,0 +1,10 @@
+package com.icedberries.UBFunkeysServer.repository;
+
+import com.icedberries.UBFunkeysServer.domain.Crib;
+import org.springframework.data.repository.CrudRepository;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface CribRepository extends CrudRepository {
+
+}
diff --git a/src/main/java/com/icedberries/UBFunkeysServer/repository/UserRepository.java b/src/main/java/com/icedberries/UBFunkeysServer/repository/UserRepository.java
new file mode 100644
index 0000000..8bb8655
--- /dev/null
+++ b/src/main/java/com/icedberries/UBFunkeysServer/repository/UserRepository.java
@@ -0,0 +1,18 @@
+package com.icedberries.UBFunkeysServer.repository;
+
+import com.icedberries.UBFunkeysServer.domain.User;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.repository.query.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.Optional;
+
+@Repository
+public interface UserRepository extends CrudRepository {
+
+ Boolean existsByUUID(Integer uuid);
+
+ @Query("select user from User user where user.UUID = :uuid")
+ Optional findByUUID(@Param("uuid") Integer uuid);
+}
diff --git a/src/main/java/com/icedberries/UBFunkeysServer/service/CribService.java b/src/main/java/com/icedberries/UBFunkeysServer/service/CribService.java
new file mode 100644
index 0000000..ad0688b
--- /dev/null
+++ b/src/main/java/com/icedberries/UBFunkeysServer/service/CribService.java
@@ -0,0 +1,10 @@
+package com.icedberries.UBFunkeysServer.service;
+
+import com.icedberries.UBFunkeysServer.domain.Crib;
+
+public interface CribService {
+
+ Integer count();
+
+ void save(Crib crib);
+}
diff --git a/src/main/java/com/icedberries/UBFunkeysServer/service/UserService.java b/src/main/java/com/icedberries/UBFunkeysServer/service/UserService.java
new file mode 100644
index 0000000..10902c1
--- /dev/null
+++ b/src/main/java/com/icedberries/UBFunkeysServer/service/UserService.java
@@ -0,0 +1,14 @@
+package com.icedberries.UBFunkeysServer.service;
+
+import com.icedberries.UBFunkeysServer.domain.User;
+
+import java.util.Optional;
+
+public interface UserService {
+
+ Optional findByUUID(Integer uuid);
+
+ Boolean existsByUUID(Integer uuid);
+
+ void save(User user);
+}
diff --git a/src/main/java/com/icedberries/UBFunkeysServer/service/impl/CribServiceImpl.java b/src/main/java/com/icedberries/UBFunkeysServer/service/impl/CribServiceImpl.java
new file mode 100644
index 0000000..dc7dd20
--- /dev/null
+++ b/src/main/java/com/icedberries/UBFunkeysServer/service/impl/CribServiceImpl.java
@@ -0,0 +1,24 @@
+package com.icedberries.UBFunkeysServer.service.impl;
+
+import com.icedberries.UBFunkeysServer.domain.Crib;
+import com.icedberries.UBFunkeysServer.repository.CribRepository;
+import com.icedberries.UBFunkeysServer.service.CribService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+
+@Service
+@RequiredArgsConstructor
+public class CribServiceImpl implements CribService {
+
+ public final CribRepository cribRepository;
+
+ @Override
+ public Integer count() {
+ return Math.toIntExact(cribRepository.count());
+ }
+
+ @Override
+ public void save(Crib crib) {
+ cribRepository.save(crib);
+ }
+}
diff --git a/src/main/java/com/icedberries/UBFunkeysServer/service/impl/UserServiceImpl.java b/src/main/java/com/icedberries/UBFunkeysServer/service/impl/UserServiceImpl.java
new file mode 100644
index 0000000..941524d
--- /dev/null
+++ b/src/main/java/com/icedberries/UBFunkeysServer/service/impl/UserServiceImpl.java
@@ -0,0 +1,32 @@
+package com.icedberries.UBFunkeysServer.service.impl;
+
+import com.icedberries.UBFunkeysServer.domain.User;
+import com.icedberries.UBFunkeysServer.repository.UserRepository;
+import com.icedberries.UBFunkeysServer.service.UserService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.util.Optional;
+
+@Service
+@RequiredArgsConstructor
+public class UserServiceImpl implements UserService {
+
+ public final UserRepository userRepository;
+
+
+ @Override
+ public Optional findByUUID(Integer uuid) {
+ return userRepository.findByUUID(uuid);
+ }
+
+ @Override
+ public Boolean existsByUUID(Integer uuid) {
+ return userRepository.existsByUUID(uuid);
+ }
+
+ @Override
+ public void save(User user) {
+ userRepository.save(user);
+ }
+}