2010-02-04 3 views
1

암호 입력란에 md5 변환기가있는 곳이 있습니다. 필드는 내 entity.password 필드 (즉, md5 해시로 저장 됨)와 바인딩됩니다.JSF f : validateLength는 변환기 뒤에서 처리 되나 전에 필요합니다.

비밀번호가 특정 길이 여야하므로 f:validateLength을 설정하고 싶습니다. 빈 문자열에 md5 해시도 있습니다. 발리 데이터는 실제 입력을 검사하지 않지만 변환 된 md5 해시를 확인합니다.

변환 된 것이 아닌 실제 입력에 유효성 검사기를 설정할 수 있습니까? 내가 최대 절전 모드를 사용하고 내 백업 콩은 또한 "모델"관리 빈입니다 :

<ice:inputSecret value="#{user.employer.user.password}" converter="md5hashconverter"> 
<f:validateLength minimum="3" maximum="15"/> 
</ice:inputSecret> 

당신에게

편집을 감사드립니다. 필자는 EntityManager를 사용합니다.

답변

1

수 없습니다.

나에게도 이것은 실제로 해시를 수행하기에 적합한 장소가 아닙니다. 그것은 "전환"(2-way로되어 있음)이 아닙니다. 오히려 INSERT 이전의 데이터 액세스 계층에서 또는 DB의 기본 제공 함수를 가져 와서 수행하십시오. 대부분 INSERT INTO user (name, pass) VALUES (?, MD5(?))과 같은 검색어에 사용할 수있는 종류의 MD5() 기능을 제공합니다.

: 업데이트에 따라, 당신은 Hibernate JPA를 사용하고 있습니다. 이 경우 JPQL을 사용하여 MD5() 함수가 포함 된 "일반"저장 쿼리를 실행하거나 EntityListener (guide here)을 잡고 @PrePersist 및 아마도 @PreUpdate을 처리 할 수 ​​있습니다.

+0

항상 감사합니다. BalusC :) 나는 내 게시물을 편집하여 내가 어떻게 살아남 았는지 알 수 있습니다. 나는 해시를 어디에서하는지 다시 생각할 것이다. 세터 내부는 나쁜 디자인일까요? –

관련 문제