31 lines
1.2 KiB
Java
31 lines
1.2 KiB
Java
|
|
package com.baeldung.loginextrafieldscustom;
|
||
|
|
|
||
|
|
import org.apache.commons.lang3.StringUtils;
|
||
|
|
import org.springframework.security.core.userdetails.UserDetails;
|
||
|
|
import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
||
|
|
import org.springframework.stereotype.Service;
|
||
|
|
|
||
|
|
@Service("userDetailsService")
|
||
|
|
public class CustomUserDetailsServiceImpl implements CustomUserDetailsService {
|
||
|
|
|
||
|
|
private UserRepository userRepository;
|
||
|
|
|
||
|
|
public CustomUserDetailsServiceImpl(UserRepository userRepository) {
|
||
|
|
this.userRepository = userRepository;
|
||
|
|
}
|
||
|
|
|
||
|
|
@Override
|
||
|
|
public UserDetails loadUserByUsernameAndDomain(String username, String domain) throws UsernameNotFoundException {
|
||
|
|
if (StringUtils.isAnyBlank(username, domain)) {
|
||
|
|
throw new UsernameNotFoundException("Username and domain must be provided");
|
||
|
|
}
|
||
|
|
User user = userRepository.findUser(username, domain);
|
||
|
|
if (user == null) {
|
||
|
|
throw new UsernameNotFoundException(
|
||
|
|
String.format("Username not found for domain, username=%s, domain=%s",
|
||
|
|
username, domain));
|
||
|
|
}
|
||
|
|
return user;
|
||
|
|
}
|
||
|
|
}
|