feat: reject emails tokens JWT

This commit is contained in:
sBubshait 2025-08-07 04:13:52 +03:00
parent 52ddacd31c
commit 6d30ec88b2

View File

@ -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<User> 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<GrantedAuthority> authorities = new ArrayList<>();
authorities.add(new SimpleGrantedAuthority("ROLE_" + user.getRole()));