package com.greglturnquist.springagram.frontend; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.authority.AuthorityUtils; 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.Component; @Component public class SpringDataJpaUserDetailsService implements UserDetailsService { private static final Logger log = LoggerFactory.getLogger(SpringDataJpaUserDetailsService.class); private UserRepository repository; @Autowired public SpringDataJpaUserDetailsService(UserRepository repository) { this.repository = repository; } @Override public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException { log.info("Fetching user " + s); User user = repository.findByName(s); log.info("Transforming " + user + " into UserDetails object"); UserDetails userDetails = new org.springframework.security.core.userdetails.User(user.getName(), user.getPassword(), AuthorityUtils.createAuthorityList(user.getRoles())); log.info("About to return " + userDetails); return userDetails; } }