feat: reject emails tokens JWT
This commit is contained in:
parent
52ddacd31c
commit
6d30ec88b2
@ -12,6 +12,7 @@ import org.springframework.stereotype.Service;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class UserDetailsServiceImpl implements UserDetailsService {
|
public class UserDetailsServiceImpl implements UserDetailsService {
|
||||||
@ -20,9 +21,17 @@ public class UserDetailsServiceImpl implements UserDetailsService {
|
|||||||
private UserRepository userRepository;
|
private UserRepository userRepository;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public UserDetails loadUserByUsername(String phoneNumber) throws UsernameNotFoundException {
|
public UserDetails loadUserByUsername(String identifier) throws UsernameNotFoundException {
|
||||||
User user = userRepository.findByPhoneNumber(phoneNumber)
|
// Try to find by phone number first
|
||||||
.orElseThrow(() -> new UsernameNotFoundException("User not found: " + phoneNumber));
|
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<>();
|
Collection<GrantedAuthority> authorities = new ArrayList<>();
|
||||||
authorities.add(new SimpleGrantedAuthority("ROLE_" + user.getRole()));
|
authorities.add(new SimpleGrantedAuthority("ROLE_" + user.getRole()));
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user