aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/org/berzerkula/builddb/services/AppUserService.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/berzerkula/builddb/services/AppUserService.java')
-rw-r--r--src/main/java/org/berzerkula/builddb/services/AppUserService.java36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/main/java/org/berzerkula/builddb/services/AppUserService.java b/src/main/java/org/berzerkula/builddb/services/AppUserService.java
new file mode 100644
index 0000000..02cc89f
--- /dev/null
+++ b/src/main/java/org/berzerkula/builddb/services/AppUserService.java
@@ -0,0 +1,36 @@
+package org.berzerkula.builddb.services;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.core.userdetails.User;
+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 org.berzerkula.builddb.models.AppUser;
+import org.berzerkula.builddb.repositories.AppUserRepository;
+
+@Service
+public class AppUserService implements UserDetailsService {
+ @Autowired
+ private AppUserRepository repo;
+
+ @Override
+ public UserDetails loadUserByUsername(String email) throws UsernameNotFoundException {
+ AppUser appUser = repo.findByEmail(email);
+
+
+ if (appUser != null) {
+ var springUser = User.withUsername(appUser.getEmail())
+ .password(appUser.getPassword())
+ .roles(appUser.getRole())
+ .build();
+
+ return springUser;
+ }
+
+
+ return null;
+ }
+
+}