2014-01-05 2 views
0

ESAPI로 작업을 시작했지만 문제가 있습니다. 예제 규칙을 만들려고합니다 (Validator.Single = [A-Z] $). 문자열에 대문자 만있는 경우 유효성을 검사합니다.ESAPI 유효성 검사기에서 규칙 만들기

System.out.println(v.isValidInput("Single", "A", "Single", 1, true)); 

출력은 나에게

SecurityConfiguration for Validator.Single not found in ESAPI.properties. Using default: 
false 

을 알려줍니다 그리고 나를 다시 발생 :

는 내가 코드에서 사용할 때 Validator.Single이 = [AZ]를 validator.properties 파일에서 $하지만 넣어 거짓, 진실에 대한 것, 왜냐하면 "A"는 유효한 문자이기 때문입니다.

누구나 내가 더 많이 할 줄 알아? 아니면 규칙을 나쁘게 만드나요?

답장을 보내 주셔서 감사합니다.

+0

기억하십시오에 validation.properties을 변경하고 있는지 확인,

-Dorg.owasp.esapi.resources="<path_to_your_resources_directory>"

또는 컴파일하는 경우 , 정규식 구문에서'[AZ]'는 거의 모든 구현에서 ASCII 대문자에서만 작동합니다. UNICODE 문자가 바로지나갑니다. 당신은'\ p {Lu}'를 사용하고 싶을 것입니다 – avgvstvs

+0

정규 표현식에'(U)'<- Java 1.7+ – avgvstvs

+0

을 붙이면 여전히 문제가됩니까? – avgvstvs

답변

0

귀하의 Validator.Single=[A-Z]$

하면 정규 표현식의 시작 부분에서 캐럿 문자 (^)의

Validator.Single=^[A-Z]$ 

를 적어 둡니다되어 있어야합니다. Lars의 Java 정규 표현식에 대한 자세한 내용을 참조하십시오. Java Regex Tutorial

+0

그건 OP 문제를 일으키지 않았을거야. – avgvstvs

0

문제는 대부분 클래스 경로와 관련이 있습니다. ESAPI를 호출하는 프로세스를 실행할 때 jvm에게 속성 파일의 위치를 ​​알려주고 있습니까, 아니면 소스에서 직접 라이브러리를 컴파일하고 있습니까?

코드 줄을 실행하는 방법에 대해 충분하지 않지만 내 생각에 사용중인 esapi jar 파일에 validation.properties 파일이 있으므로 원하는 파일을 선택하지 않은 것입니다.

프로세스가 실행하지만, 다음과 같은 속성이 JVM에 전달되어 있는지 확인 : 당신이 src/main/resources

관련 문제