From 6d30ec88b21e49ac152e50b06f3882658d68c415 Mon Sep 17 00:00:00 2001 From: sBubshait Date: Thu, 7 Aug 2025 04:13:52 +0300 Subject: [PATCH] feat: reject emails tokens JWT --- .../wesal/service/UserDetailsServiceImpl.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/backend/src/main/java/online/wesal/wesal/service/UserDetailsServiceImpl.java b/backend/src/main/java/online/wesal/wesal/service/UserDetailsServiceImpl.java index 372d18a..d5e561f 100644 --- a/backend/src/main/java/online/wesal/wesal/service/UserDetailsServiceImpl.java +++ b/backend/src/main/java/online/wesal/wesal/service/UserDetailsServiceImpl.java @@ -12,6 +12,7 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Collection; +import java.util.Optional; @Service public class UserDetailsServiceImpl implements UserDetailsService { @@ -20,9 +21,17 @@ public class UserDetailsServiceImpl implements UserDetailsService { private UserRepository userRepository; @Override - public UserDetails loadUserByUsername(String phoneNumber) throws UsernameNotFoundException { - User user = userRepository.findByPhoneNumber(phoneNumber) - .orElseThrow(() -> new UsernameNotFoundException("User not found: " + phoneNumber)); + public UserDetails loadUserByUsername(String identifier) throws UsernameNotFoundException { + // Try to find by phone number first + Optional userOpt = userRepository.findByPhoneNumber(identifier); + + // If not found, try username + if (userOpt.isEmpty()) { + userOpt = userRepository.findByUsername(identifier); + } + + // If still not found, throw exception (this will invalidate old email-based tokens) + User user = userOpt.orElseThrow(() -> new UsernameNotFoundException("User not found: " + identifier)); Collection authorities = new ArrayList<>(); authorities.add(new SimpleGrantedAuthority("ROLE_" + user.getRole()));