package com.greglturnquist.springagram.backend;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import lombok.Data;
import lombok.ToString;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import com.fasterxml.jackson.annotation.JsonIgnore;
@Data
@ToString(exclude = "password")
@Entity
public class User implements Serializable {
public static final PasswordEncoder PASSWORD_ENCODER = new BCryptPasswordEncoder();
@Id @GeneratedValue
private Long 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);
}
}