2012-09-30 2 views
1

나는이 같은 엔터티를 가지고 :숨기기 암호 필드는

public class User { 
    @Column(name = "password") 
    @Element(name = "pass", data = true) 
    private String password; 
} 

내가하고자하는 분야의 암호를 읽을되지 않는 것입니다/기본적으로 쿼리에 채워집니다. 그러나 어떤 경우에는 물론 PWD를 확인하고 싶습니다.이 특별한 경우에 PWD는 User 객체의 openJPA로 읽고 채워야합니다.

이것을 구현하는 데 사용할 수있는 가져 오기 전략 또는 JPQL 쿼리에는 어떤 것이 있습니까? FetchType.Lazy는 단일 필드가 아니라 join'ed 테이블에만 적용된다고 생각합니다. 또한 JPQL 쿼리를 상상할 수 없습니다. openJPA에이 FetchType을 덮어 쓰고이 필드를로드하려면 PWD 검사에 실제로 필요한 경우에 대비하여이 필드를로드해야합니다.

많은 감사! Sebastian

+0

가 왜 상관이야 다음과 같이 간단하게 게으른 가져 오는 전략으로 @Basic 주석을 추가? 엔티티를있는 그대로 제 3 자에게 보냅니 까? 암호를 일반 텍스트로 저장하고 있습니까? 그렇다면 이것이 주요 보안 문제입니다. 그들을 소금과 해시. –

+0

pwd가 이미 해시되었습니다. 또한 엔티티가 클라이언트에 전송되기 전에 숨겨져 있습니다 ... 그러나이 솔루션은 다소 못 생깁니다. 그래서 모든 엔티티에 대해 추가 DTO를 만들 필요가없는 대안을 찾고 있습니다. –

답변