Я пытаюсь использовать комбинацию dropwizard + morphia + jackson (по умолчанию dropwizard), но я не могу получить @JsonIgnore
или @JsonIgnoreProperties
для работы. Я пробовал @JsonIgnoreProperties
над определением класса для свойств, которые я не хочу показывать (пароль и соль) для пользователей моего API, я также пробовал @JsonIgnore
над самими объявлениями полей, а также над каждой перестановкой геттеров и сеттер ... Теперь в убыток.Jackson и JsonIgnore, чтобы скрыть секретные поля
редактировать: вот модель:
@Entity(value = "user", noClassnameStored = true)
@Indexes({
@Index(fields = {
@Field(value = "email", type = IndexType.ASC)},
options = @IndexOptions(unique = true, sparse = true)
)
})
public class User {
@Id
private ObjectId id = new ObjectId();
@JsonProperty
private String email;
@JsonProperty
private byte[] password;
@JsonProperty
private byte[] salt = SecurityUtils.getSalt();
@Reference
private Person person = new Person();
public String getId() {
return id.toHexString();
}
public void setId(ObjectId id) {
this.id = id;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@JsonIgnore
public byte[] getPassword() {
return password;
}
@JsonIgnore
public void setPassword(String password) {
this.password = SecurityUtils.hashPassword(password.toCharArray(), this.getSalt());
}
@JsonIgnore
public byte[] getSalt() {
return salt;
}
@JsonIgnore
public void setSalt(byte[] salt) {
this.salt = salt;
}
public Person getPerson() {
return person;
}
public void setPerson(Person person) {
this.person = person;
}
}
В дополнение к вышесказанному я попытался определения класса с использованием @JsonIgnoreProperties({"password", "salt"} public class User...
, а также с @JsonIgnore
только над геттеры, сеттеры и т.д.
Я использую morphia v1.2.1 для сохранения. Сейчас у меня есть базовый DAO, который расширяет BasicDAO от morphia и в основном просто проксирует на данный момент. Может публиковать фрагменты кода, если это поможет.
Возможно, вы сможете оставить свой код? – Tibrogargan