Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package programacaovi.spring.security; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.userdetails.User; 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 java.util.Collection; import static java.util.Arrays.asList; /** * @author rodrigo */ @Service public class FakeUserDetailsService implements UserDetailsService { @Autowired private PessoaRepository personRepository; @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { Pessoa person = personRepository.findByNome(username); if (person == null) { throw new UsernameNotFoundException("Username " + username + " no encontrado"); } return new User(username, "password", getGrantedAuthorities(username)); } private Collection<? extends GrantedAuthority> getGrantedAuthorities(String username) { Collection<? extends GrantedAuthority> authorities; if (username.equals("Rodrigo")) { authorities = asList(() -> "ROLE_ADMIN", () -> "ROLE_BASIC"); } else { authorities = asList(() -> "ROLE_BASIC"); } return authorities; } }