package com.greglturnquist.springagram.fileservice.mongodb;
import java.io.Serializable;
import lombok.Data;
import lombok.ToString;
import org.springframework.data.annotation.Id;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import com.fasterxml.jackson.annotation.JsonIgnore;
@Data
@ToString(exclude = "password")
public class User implements Serializable {
public static final PasswordEncoder PASSWORD_ENCODER = new BCryptPasswordEncoder();
@Id
private String id;
private String name;
// tag::user[]
// This field MUST be protected against any form of
// serialization to avoid security leakage
@JsonIgnore
private String password;
//end::user[]
private String[] roles;
public void setPassword(String password) {
this.password = PASSWORD_ENCODER.encode(password);
}
}