CustomUserDetailsService.java 1.95 KB
package etunicorn;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UsernameNotFoundException;

import java.util.Collection;

/**
 * Created by geoffrey on 29/01/17.
 */
public class CustomUserDetailsService implements UserDetailsService {

    private final PersonneRepository personneRepository;

    @Autowired
    public CustomUserDetailsService(PersonneRepository personneRepository) {
        this.personneRepository = personneRepository;
    }

    @Override
    public UserDetails loadByUsername(String login) throws UsernameNotFoundException {
        Personne personne = personneRepository.findByLogin(login);
        if (personne == null) {
            throw new UsernameNotFoundException(String.format("L'utilisateur %s n'existe pas !", login));
        }
        return new PersonneRepositoryUserDetails(personne);
    }

    private final static class PersonneRepositoryUserDetails extends Personne implements UserDetails {

        public PersonneRepositoryUserDetails(Personne personne) {
            super(personne);
        }

        @Override
        public Collection<? extends GrantedAuthority> getAuthorities() {
            // return getRoles();
            return null;
        }

        @Override
        public String getPassword() {
            return "test";
        }

        @Override
        public String getUsername() {
            return getLogin();
        }

        @Override
        public boolean isAccountNonExpired() {
            return true;
        }

        @Override
        public boolean isAccountNonLocked() {
            return true;
        }

        @Override
        public boolean isCredentialsNonExpired() {
            return true;
        }

        @Override
        public boolean isEnabled() {
            return true;
        }
    }
}