我正在嘗試使用dropwizard + morphia + jackson(dropwizard的默認設置)的組合,但我無法獲得@JsonIgnore
或@JsonIgnoreProperties
的工作方式。我已經嘗試@JsonIgnoreProperties
來覆蓋類的定義,我不想公開API(密碼和salt)給我的API的用戶,我也嘗試過@JsonIgnore
以上的字段聲明本身以及每個getter和二傳手...現在有點虧本。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,它擴展了morphia的BasicDAO,目前大部分只是代理。如果它能提供幫助,可以發佈該代碼的片段。
也許你可以發佈你的代碼? – Tibrogargan