이 규칙은 SOAP 결함 및 문자열을 검색하는 메소드에 대한 호출을 플래그 지정합니다.
WebSphere Application Server V8에서는 웹 서비스 런타임 환경에서 리턴하는 기본 결함 코드 및 문자열이 변경되었습니다.
특히 다음 메소드가 플래그 지정되었습니다.
-
javax.xml.soap.SOAPFault.getFaultCode()
-
javax.xml.soap.SOAPFault.getFaultString()
-
com.ibm.websphere.webservices.soap.IBMSOAPFault.getFaultCode()
-
com.ibm.websphere.webservices.soap.IBMSOAPFault.getFaultString()
-
javax.xml.rpc.soap.SOAPFaultException.getFaultCode()
-
javax.xml.rpc.soap.SOAPFaultException.getFaultString()
-
com.ibm.websphere.webservices.soap.SOAPException.getFaultCode()
-
com.ibm.websphere.webservices.soap.SOAPException.getFaultString()
XML 암호화를 사용하는 웹 서비스와 관련된 잠재적 보안 노출을 수정하기 위해 기본 결함 코드 및 문자열을 변경했습니다. 수정하는 과정에서,
웹 서비스 런타임 환경에서 생성되는 모든 SOAP 결함에서 자세한 정보가 제거되었습니다. 기본적으로 버전 8에서 웹 서비스 런타임 환경은 런타임 환경에서 생성된 모든 결함을 결함 코드를 포함하는 단일 유형의 결함으로 통합합니다.
soapenv:Server
및 결함 문자열
Internal Error
.
애플리케이션이 런타임 환경 결함 코드나 문자열의 상세 정보를 필요로 하는 경우에는 애플리케이션을 수정해야 합니다.
또한 다음을 사용할 수도 있습니다.
webservices.unify.faults
Java Virtual Machine) 사용자 정의 특성을 사용하여 기본 동작을 변경합니다.
이전 릴리스의 동작으로 되돌리려면 다음을 설정하십시오.
webservices.unify.faults
-
false
.
WebSphere Application Server V8 이전에서는 결함 코드나 문자열의 상세 정보를 리턴하는 것이 기본 동작입니다. 또한, 6.0.2, 6.1 및 7.0을 포함한
서비스 스트림에서는 이 문제가 수정되었지만 이러한 릴리스의 기본 동작은 변경되지 않았습니다.
서비스 릴리스의 경우,
webservices.unify.faults
기본값은 다음과 같습니다.
false
. 해당 값을 다음으로 변경하십시오.
true
해당 릴리스에서 버전 8과 동일한 동작을 얻을 수 있습니다.
JAX-WS 예제:
< span class="Code" > 가져오기 javax.xml.ws.soap.SOAPFaultException;
import javax.xml.ws.soap.SOAPFault;
try {
// some code that causes a fault
...
} catch (SOAPFaultException e) {
SOAPFault soapFault = e.getFault();
String faultCode = soapFault.getFaultCode();
String faultString = soapFault.getFaultString();
...
}
JAX-RPC 예제:
< span class="Code" > 가져오기 javax.xml.rpc.soap.SOAPFaultException;
import javax.xml.namespace.QName;
try {
// some code that causes a fault
...
} catch (SOAPFaultException e) {
QName faultCode = e.getFaultCode();
String faultString = e.getFaultString();
...
}
이 두 예제 모두에서
getFaultCode()
및
getFaultString()
메소드에 플래그가 지정됩니다.
추가 정보는 다음을 참조하십시오.