더하기 부호를 포함하는 url에서 동작 변경 확인

이 규칙은 URL의 조회 매개변수 부분이 아닌 더하기("+") 부호를 포함하는 URL을 플래그 지정합니다. Java 코드에서 규칙은 java.net.URL 생성자를 스캔하고 URL 작성에 사용된 매개변수를 검사합니다. 규칙은 조회 매개변수가 아닌 URL의 더하기 부호를 검색합니다. 쿼리 매개변수에는 "?" 의 오른쪽에 있는 모든 항목이 포함됩니다. URL 에서 문자를 사용할 수 있다.

WebSphere Application Server 버전 5.1 이전에서는 URL을 디코드하면 조회 매개변수뿐만 아니라 전체 URL도 디코드됩니다. 이 동작은 올바르지 않으며 더하기 부호가 조회 매개변수에 없는 경우 특수 문자로 처리하지 않도록 웹 컨테이너가 변경되었습니다. 그 결과 애플리케이션이 이전 상태로 되돌아가게 되었으며 버전 5.1.1.11에서는 웹 컨테이너 사용자 정의 특성을 추가하여 사용자가 더하기 부호를 디코딩하는 동작을 제어할 수 있도록 했습니다. 이 사용자 정의 특성의 기본 동작은 URL의 어디에서나 더하기 부호를 디코드했던 이전의 동작입니다.

URL에 디코드할 수 없는 더하기 부호를 포함하는 경우 웹 컨테이너 사용자 정의 특성 com.ibm.ws.webcontainer.decodeURLPlusSign을 false로 지정하십시오. 기본 동작은 true입니다.

Java 규칙은 URL 생성자를 검사하고 가능한 경우 생성자의 파일 매개변수, 스펙, 호스트를 검사하여 플러스 기호가 없는지 확인합니다. 규칙은 동일한 컴파일 단위에 정의된 final 문자열 변수 또는 문자열 리터럴을 전달하는 생성자를 스캔합니다. 스펙, 호스트 또는 파일 매개변수를 검사하는 경우 규칙을 위반하는 생성자만 플래그 지정합니다.

Java 규칙은 또한 검사할 수 없는 변수로 코딩된 스펙, 호스트 또는 파일 이름을 가진 URL 생성자의 인스턴스를 플래그 지정합니다.

예 1.


import java.net.URL;

URL url = new URL("http://www.domain.com?id=test&name=plus+sign");
}

예제 1에서 더하기 부호가 조회 매개변수에 있지 않으므로 규칙은 URL 생성자를 플래그 지정하지 않습니다.

예제 2:


import java.net.URL;

URL url = new URL("http://www.domain.com/plus+path?id=test&name=ok");
}

예제 2에서 더하기 부호가 URL의 경로 파트에 있으므로 URL 생성자를 플래그 지정합니다.

추가 정보는 java.net.URL Java 문서를 참조하십시오.