vendredi 15 mai 2015

Getting error "No converter found capable of converting from type java.lang.String to type org.springframework.security.core.GrantedAuthority"

I am new to spring boot, i am doing spring-security in my application. I am getting no convertor found exception when i am fetching user from database even i imported all dependencies for it.Help me how to resolve it.

My domain is

public class User {
    public static final String USERNAME = "username";
    public static final String PASSWORD = "password";
    public static final String ROLES = "roles";

    @Id String id;

    String firstName;

     @JsonProperty(PASSWORD)
    String password;

    @JsonProperty(USERNAME)
    String userName;

    @JsonProperty(ROLES)
    @JsonSerialize(contentUsing = GrantedAuthoritySerializer.class)
    @JsonDeserialize(contentUsing = GrantedAuthorityDeserializer.class)
    private List<GrantedAuthority> roles;



    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

     public List<GrantedAuthority> getRoles() {
            System.out.println("roles"+roles);
            return roles;
        }

     @Override
        public String toString() {
            return new ToStringBuilder(this)
                    .append("username", userName)
                    .append("password", password)
                    .append("roles", roles)
                    .toString();
        }

UserService

User user = userRepository.findById("5555c3e77d6e5b11dd4ff858");

AuthProvider

UserDetails loadedUser;

        System.out.println("username"+username);

        try {
             com.samepinch.domain.user.User samepinchuser = userService.findUserByUsername(username);
            System.out.println("samepinchuser"+samepinchuser);
            loadedUser = new User(samepinchuser.getUserName(), samepinchuser.getPassword(),samepinchuser.getRoles());
            System.out.println("loaded user"+loadedUser);
        } catch (Exception repositoryProblem) {
            throw new InternalAuthenticationServiceException(repositoryProblem.getMessage(), repositoryProblem);
        }

Aucun commentaire:

Enregistrer un commentaire