* created multi-module project from spring-security-mvc-boot * Added JDBC Authentication application to spring-security-mvc-boot-default * Added JDBC Authentication application to spring-security-mvc-boot-mysql * Added JDBC Authentication application to spring-security-mvc-boot-postgre * adding new modules to parent spring-security-mvc-boot module, reformatting sql scripts, and added form fields to H2 LiveTest
41 lines
1.2 KiB
Java
41 lines
1.2 KiB
Java
package com.baeldung.security;
|
|
|
|
import javax.annotation.PostConstruct;
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
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.springframework.web.context.WebApplicationContext;
|
|
|
|
import com.baeldung.data.repositories.UserRepository;
|
|
import com.baeldung.models.AppUser;
|
|
|
|
@Service
|
|
public class CustomUserDetailsService implements UserDetailsService {
|
|
|
|
@Autowired
|
|
private WebApplicationContext applicationContext;
|
|
private UserRepository userRepository;
|
|
|
|
public CustomUserDetailsService() {
|
|
super();
|
|
}
|
|
|
|
@PostConstruct
|
|
public void completeSetup() {
|
|
userRepository = applicationContext.getBean(UserRepository.class);
|
|
}
|
|
|
|
@Override
|
|
public UserDetails loadUserByUsername(final String username) {
|
|
final AppUser appUser = userRepository.findByUsername(username);
|
|
if (appUser == null) {
|
|
throw new UsernameNotFoundException(username);
|
|
}
|
|
return new AppUserPrincipal(appUser);
|
|
}
|
|
|
|
}
|