package net.olemartin.domain;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
import org.neo4j.ogm.annotation.GraphId;
import org.neo4j.ogm.annotation.Index;
import org.neo4j.ogm.annotation.NodeEntity;
import java.lang.reflect.Type;
import java.security.Principal;
@NodeEntity
public class User implements Principal {
@GraphId
private Long id;
@Index(unique=true)
private String username;
private String password;
private String salt;
private String name;
public User(String username, String password, String salt, String name) {
this.username = username;
this.password = password;
this.salt = salt;
this.name = name;
}
private User(){}
public String getSalt() {
return salt;
}
public String getPassword() {
return password;
}
public String getUsername() {
return username;
}
public String getName() {
return name;
}
public static class UserSerializer implements JsonSerializer<User> {
@Override
public JsonElement serialize(User src, Type typeOfSrc, JsonSerializationContext context) {
JsonObject root = new JsonObject();
root.addProperty("id", src.id);
root.addProperty("name", src.name);
root.addProperty("username", src.username);
return root;
}
}
}