Ellenőrizze viselkedésváltozást a világhálós szolgáltatások SOAP hibakódjaiban és karaktersorozataiban

Ez a szabály a SOAP hibákat és karaktersorozatokat beolvasó metódusok hívásait jelzi. A világhálós szolgáltatások futási környezetei által visszaadott alapértelmezett hibakódok és karaktersorozatok a WebSphere Application Server 8 változatban megváltoztak.

A következő metódusok kerülnek megjelölésre:

At alapértelmezett hibakódok és karaktersorozatok változásainak oka egy potenciális biztonsági veszélyeztetettség kijavítása, amely az XML titkosítást használó világhálós szolgáltatásokhoz kapcsolódik. A javítás részeként a részletes információk eltávolításra kerültek a világhálós szolgáltatások futási környezete által előállított minden SOAP hibából. Alapértelmezésben a 8. Változatban a webszolgáltatás futási környezetek egyesítik a futási környezet által előállított összes hibát egyetlen hibatódot tartalmazó hibatípusra soapenv:Server és hibás karaktersorozat Internal Error .

Ha az alkalmazás részletes információkat vár el a futási környezet hibakódokkal és karaktersorozatokkal kapcsolatban, akkor lehet, hogy módosítania kell az alkalmazást. Használhatja a webservices.unify.faults Java virtuális gép egyéni tulajdonság az alapértelmezett viselkedés módosításához. Az előző kiadás viselkedésének visszaállításához állítsa be webservices.unify.faults eddig: false .

A WebSphere Application Server V8 előtt az alapértelmezett viselkedés a részletes információk visszaadása volt a hibakódban és karaktersorozatokban. Ez a probléma a szolgáltatások adatfolyamaiban is javításra került (beleérve a 6.0.2, 6.1 és 7.0 változatot), de az alapértelmezett viselkedés ezen kiadásokban változatlan maradt. A szolgálati kiadások esetében, webservices.unify.faults Rendelkezik alapértelmezett értékkel false . Módosítsa ezt az értéket értékre true Ugyanaz a viselkedés, mint a 8. Változat a kiadásokban.

JAX-WS példa:
class="Code" > import 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 példa:
class="Code" > import 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();
...
}

Mindkét példában a hívások a getFaultCode() és getFaultString() A metódusok meg lesznek jelölve.

További információkért lásd: