package br.gov.servicos.editor.security;
import br.com.caelum.stella.format.CPFFormatter;
import br.gov.servicos.editor.usuarios.UsuarioRepository;
import lombok.AccessLevel;
import lombok.experimental.FieldDefaults;
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.Component;
@Component(value = "userDetailsService")
@FieldDefaults(level = AccessLevel.PRIVATE, makeFinal = true)
public class EditorUserDetailsService implements UserDetailsService {
UsuarioRepository usuarios;
CPFFormatter formatter;
@Autowired
public EditorUserDetailsService(UsuarioRepository usuarios) {
formatter = new CPFFormatter();
this.usuarios = usuarios;
}
@Override
public UserDetails loadUserByUsername(String cpf) throws UsernameNotFoundException {
return usuarios.findByCpf(formatter.unformat(cpf));
}
}