From 8794554d835817a0e2f90f497a452354d650432b Mon Sep 17 00:00:00 2001 From: Hannah <hz018@hdm-stuttgart.de> Date: Tue, 7 Nov 2023 11:34:26 +0100 Subject: [PATCH] JwToken und Security Package --- pom.xml | 8 +++---- .../security/CustomUserDetailsService.java | 24 +++++++++++++++++++ .../mi/growbros/security/JwTokenProvider.java | 19 +++++++++++++++ 3 files changed, 47 insertions(+), 4 deletions(-) create mode 100644 src/main/java/hdm/mi/growbros/security/CustomUserDetailsService.java create mode 100644 src/main/java/hdm/mi/growbros/security/JwTokenProvider.java diff --git a/pom.xml b/pom.xml index baa2c8a..d028657 100644 --- a/pom.xml +++ b/pom.xml @@ -29,10 +29,10 @@ <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> - <!-- <dependency>--> - <!-- <groupId>org.springframework.boot</groupId>--> - <!-- <artifactId>spring-boot-starter-security</artifactId>--> - <!-- </dependency>--> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-security</artifactId> + </dependency> <dependency> <groupId>com.h2database</groupId> diff --git a/src/main/java/hdm/mi/growbros/security/CustomUserDetailsService.java b/src/main/java/hdm/mi/growbros/security/CustomUserDetailsService.java new file mode 100644 index 0000000..6992eec --- /dev/null +++ b/src/main/java/hdm/mi/growbros/security/CustomUserDetailsService.java @@ -0,0 +1,24 @@ +package hdm.mi.growbros.security; + +import hdm.mi.growbros.models.user.User; +import hdm.mi.growbros.repositories.UserRepository; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.core.userdetails.UsernameNotFoundException; +import org.springframework.stereotype.Service; + +import java.util.Collections; + +//versorgt Spring mit dem User der überprüft werden soll +@Service +public class CustomUserDetailsService implements UserDetailsService { + + private UserRepository userRepository; + //user anhand der email (stellt Username dar) aus der DB holen + @Override + public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { + User user = userRepository.findByEmail(username).orElseThrow(() -> new UsernameNotFoundException("Dieser Nutzer wurde nicht gefunden")); + + return new org.springframework.security.core.userdetails.User(user.getEmail(),user.getPassword(), Collections.emptyList()); //empty list, weils noch keine Privilegien gibt + } +} diff --git a/src/main/java/hdm/mi/growbros/security/JwTokenProvider.java b/src/main/java/hdm/mi/growbros/security/JwTokenProvider.java new file mode 100644 index 0000000..554d301 --- /dev/null +++ b/src/main/java/hdm/mi/growbros/security/JwTokenProvider.java @@ -0,0 +1,19 @@ +package hdm.mi.growbros.security; + +import java.time.Instant; + +//Json Web Token wird zur Autorisierung verwendet +public class JwTokenProvider { + //Jw Token werden mit einem Schlüssel/ Passwort signiert -> so können unr wir überprüfen ob der Token gültig ist oder nicht + private String jwTSecret; + //generiert Token anhand der Email + public String generateToken(String userEmail) { + Instant now = Instant.now(); + String returnvalue = "hi"; + return returnvalue; + } + public boolean validateToken(String token) { + return true; + + } +} -- GitLab