dropwizard + morphia + jackson (dropwizard의 기본값) 조합을 사용하려고하는데, @JsonIgnore
또는 @JsonIgnoreProperties
을 사용할 수 없습니다. 나는 @JsonIgnoreProperties
클래스 정의를 통해 내 API의 소비자에게 (암호와 소금) 노출되고 싶지 않아요. 나는 또한 getter의 모든 순열에 대한 필드 선언 자체를 통해 @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을 사용하고 있습니다. 지금 당장 나는 morphia의 BasicDAO를 확장하는 기본적인 DAO를 가지고 있으며, 그 순간 대부분 프록시 만합니다. 도움이된다면 해당 코드 조각을 게시 할 수 있습니다.
코드를 게시 할 수 있습니까? – Tibrogargan