diff --git a/backend/pom.xml b/backend/pom.xml index 236f07a12d76974334955001e897415bb120e994..7dcbff00a7cdb7c9164d2b4a7728def31b47edde 100644 --- a/backend/pom.xml +++ b/backend/pom.xml @@ -29,12 +29,17 @@ <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> - <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>runtime</scope> </dependency> + <dependency> + <groupId>jakarta.persistence</groupId> + <artifactId>jakarta.persistence-api</artifactId> + </dependency> + + <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> diff --git a/backend/src/main/java/hu/pazmany/ExampleController.java b/backend/src/main/java/hu/pazmany/ExampleController.java new file mode 100644 index 0000000000000000000000000000000000000000..f84dcbd61f71683c47d76021a4836a839f6018d7 --- /dev/null +++ b/backend/src/main/java/hu/pazmany/ExampleController.java @@ -0,0 +1,26 @@ +package hu.pazmany; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +@CrossOrigin(origins = "http://localhost:3000") +@RestController +public class ExampleController { + private final UserService userService; + + @Autowired + public ExampleController(UserService userService) { + this.userService = userService; + } + + @PostMapping("/api/login") + public String login(@RequestBody UserLoginDto userLoginDto) { + System.out.println(userLoginDto); + return userService.authenticate(userLoginDto.getUsername(), userLoginDto.getPassword()); + } + + @PostMapping("/api/register") + public void register(@RequestBody UserLoginDto userLoginDto) { + userService.register(userLoginDto.getFullName(), userLoginDto.getUsername(), userLoginDto.getPassword()); + } +} \ No newline at end of file diff --git a/backend/src/main/java/hu/pazmany/ExampleApplication.java b/backend/src/main/java/hu/pazmany/NoteStore.java similarity index 73% rename from backend/src/main/java/hu/pazmany/ExampleApplication.java rename to backend/src/main/java/hu/pazmany/NoteStore.java index 3961bea1fcfe7eb6671ba8e4613a6786cc6f5d90..dd4be8945d36b0c8d639a3cacd04d438eb332600 100644 --- a/backend/src/main/java/hu/pazmany/ExampleApplication.java +++ b/backend/src/main/java/hu/pazmany/NoteStore.java @@ -4,10 +4,10 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication(scanBasePackages = { "hu.pazmany" }) -public class ExampleApplication { +public class NoteStore { public static void main(String[] args) { - SpringApplication.run(ExampleApplication.class, args); + SpringApplication.run(NoteStore.class, args); } } diff --git a/backend/src/main/java/hu/pazmany/User.java b/backend/src/main/java/hu/pazmany/User.java new file mode 100644 index 0000000000000000000000000000000000000000..40c2650f394c2363b275ca409e9d53e1b1e5569c --- /dev/null +++ b/backend/src/main/java/hu/pazmany/User.java @@ -0,0 +1,46 @@ +package hu.pazmany; + +import jakarta.persistence.*; + +@Entity +@Table(name = "`user`") +public class User { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + private String fullName; + private String username; + private String password; //Ide fog kelleni egy enkriptálás (hajrá) + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getFullName() { + return fullName; + } + + public void setFullName(String fullName) { + this.fullName = fullName; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } +} diff --git a/backend/src/main/java/hu/pazmany/UserLoginDto.java b/backend/src/main/java/hu/pazmany/UserLoginDto.java new file mode 100644 index 0000000000000000000000000000000000000000..945d5d564e455020c1f9a7994ae3d914ff6ca0bc --- /dev/null +++ b/backend/src/main/java/hu/pazmany/UserLoginDto.java @@ -0,0 +1,31 @@ +package hu.pazmany; + +public class UserLoginDto { + private String fullName; + private String username; + private String password; + + public String getFullName() { + return fullName; + } + + public void setFullName(String fullName) { + this.fullName = fullName; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } +} diff --git a/backend/src/main/java/hu/pazmany/UserRepository.java b/backend/src/main/java/hu/pazmany/UserRepository.java new file mode 100644 index 0000000000000000000000000000000000000000..625c023b72bf664be1072cee3093a4d10254099b --- /dev/null +++ b/backend/src/main/java/hu/pazmany/UserRepository.java @@ -0,0 +1,7 @@ +package hu.pazmany; + +import org.springframework.data.jpa.repository.JpaRepository; + +public interface UserRepository extends JpaRepository<User, Long> { + User findByUsername(String username); +} diff --git a/backend/src/main/java/hu/pazmany/UserService.java b/backend/src/main/java/hu/pazmany/UserService.java new file mode 100644 index 0000000000000000000000000000000000000000..ee97f97743f673ef89194c63c0ffb31056c8b1e3 --- /dev/null +++ b/backend/src/main/java/hu/pazmany/UserService.java @@ -0,0 +1,29 @@ +package hu.pazmany; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class UserService { + private final UserRepository userRepository; + + public UserService(UserRepository userRepository) { + this.userRepository = userRepository; + } + + public String authenticate(String username, String password) { + User user = userRepository.findByUsername(username); + if (user != null && user.getPassword().equals(password)) { + return user.getFullName(); + } + return "Helytelen felhasználónév vagy jelszó!"; + } + + public void register(String fullName, String username, String password) { + User user = new User(); + user.setFullName(fullName); + user.setUsername(username); + user.setPassword(password); + userRepository.save(user); + } +} diff --git a/backend/src/main/java/hu/pazmany/controller/ExampleController.java b/backend/src/main/java/hu/pazmany/controller/ExampleController.java deleted file mode 100644 index bfe2e26d6b2bf7b6febc7a5f532c7ab99ae281b9..0000000000000000000000000000000000000000 --- a/backend/src/main/java/hu/pazmany/controller/ExampleController.java +++ /dev/null @@ -1,21 +0,0 @@ -package hu.pazmany.controller; - -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/api") -public class ExampleController { - private static final String OKAY_STRING = "OK"; - - /** - * Provides an OK string - * @return An OK string - */ - - @GetMapping("/ok") - public String ok() { - return OKAY_STRING; - } -} diff --git a/backend/src/main/resources/application.properties b/backend/src/main/resources/application.properties index 331c9e3ba478c5ffbfa39ecf7637a95ace1503b9..a00ab33962dcfdc65359907962b298a5bf22beec 100644 --- a/backend/src/main/resources/application.properties +++ b/backend/src/main/resources/application.properties @@ -7,6 +7,7 @@ spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=sa spring.datasource.password=sa spring.jpa.database-platform=org.hibernate.dialect.H2Dialect +spring.jpa.properties.hibernate.globally_quoted_identifiers=true spring.h2.console.enabled=true spring.h2.console.path=/h2-console diff --git a/backend/src/test/java/hu/pazmany/ExampleApplicationTests.java b/backend/src/test/java/hu/pazmany/ExampleApplicationTests.java deleted file mode 100644 index 2be0d2037b7c6dbd119ac9c7253bc8a69c4e7b6e..0000000000000000000000000000000000000000 --- a/backend/src/test/java/hu/pazmany/ExampleApplicationTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package hu.pazmany; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class ExampleApplicationTests { - - @Test - void contextLoads() { - } - -} diff --git a/frontend/src/components/login-komponens.vue b/frontend/src/components/login-komponens.vue index 5c13327aa99798d8a79a278b5ba87568b772a697..c19efa892cc218982eda7527d6baa3a78587d746 100644 --- a/frontend/src/components/login-komponens.vue +++ b/frontend/src/components/login-komponens.vue @@ -27,14 +27,30 @@ import axios from 'axios'; // }) // } +function loginUser(credentials, callback) { + axios.post('http://localhost:8080/api/login', credentials) + .then(response => { + callback(response.data) + }) + .catch(error => { + console.log(error); + }); +} + const loggedIn = ref(false); const btnText = ref("Bejelentkezés") +const userName = ref("") function login(){ loggedIn.value = !loggedIn.value if(loggedIn.value){ + //Itt lesz a kitalált user (Gipsz Jakab, keksz) aki megpróbál bejelentkezni + loginUser({username: 'gipja', password: 'keksz'}, function(response) { + userName.value = response + }) btnText.value = "Kijelentkezés" } else { + userName.value = "" btnText.value = "Bejelentkezés" } } @@ -42,6 +58,7 @@ function login(){ </script> <template> + <h1>{{userName}}</h1> <button class="grow" @click="login">{{btnText}}</button> </template> diff --git a/frontend/src/components/register-komponens.vue b/frontend/src/components/register-komponens.vue index 646849b2ea27be35677d2f04d63a5bf01949f9aa..654db97831601deef77e3b97975de6e8454fcd0d 100644 --- a/frontend/src/components/register-komponens.vue +++ b/frontend/src/components/register-komponens.vue @@ -1,9 +1,20 @@ <script setup> -function register(){ - +import axios from "axios"; + +function registerUser(credentials) { + axios.post('http://localhost:8080/api/register', credentials) + .then(response => { + console.log("Sikeres regisztráció!") + }) + .catch(error => { + console.error('Sikertelen regisztráció!', error); + }); } +function register(){ + registerUser({fullName: 'Gipsz Jakab', username: 'gipja', password: 'keksz'}) +} </script> <template>