diff options
Diffstat (limited to 'bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1302.java')
-rw-r--r-- | bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1302.java | 181 |
1 files changed, 0 insertions, 181 deletions
diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1302.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1302.java deleted file mode 100644 index 63acd565a..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1302.java +++ /dev/null @@ -1,181 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.log.MessageEntry; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - - -/** - * BP1302. - * The soap:faultcode value in the soap:Fault element of the response - * message is not custom, and is one of: VersionMismatch, MustUnderstand, Client, Server. - */ -public class BP1302 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1302(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - //SOAP fault code values should not be custom: only standard code qualifiers - //are used: VersionMismatch, MustUnderstand, Client, Server - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - - //String requestMessage = null; - String responseMessage = null; - - if (this.validator.isOneWayResponse(entryContext)) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - //Get the response message check the faultcode. - MessageEntry logEntryResponse = entryContext.getResponse(); - if (logEntryResponse != null) - { - responseMessage = logEntryResponse.getMessage(); - - Document targetDoc = XMLUtils.parseXML(responseMessage); - NodeList faultCodes = targetDoc.getElementsByTagName("faultcode"); - // targetDoc.getElementsByTagNameNS(WSIConstants.NS_URI_SOAP, "faultcode"); - - if (faultCodes.getLength() <= 0) - result = AssertionResult.RESULT_NOT_APPLICABLE; - //No faultcode - - for (int i = 0; i < faultCodes.getLength(); i++) - { - Node faultCodeElem = faultCodes.item(i); - //If the faultcode was MustUnderstand, check the value of - //the mustUnderstand attribute in the request. - if (faultCodeElem == null) - result = AssertionResult.RESULT_NOT_APPLICABLE; - else if (faultCodeElem.getNodeType() == Node.ELEMENT_NODE) - { - if (isValidFaultCode((Element) faultCodeElem)) - { - result = AssertionResult.RESULT_PASSED; - } - else - { - result = AssertionResult.RESULT_WARNING; - failureDetail = - this.validator.createFailureDetail(responseMessage, entryContext); - //failureDetail = - // "The faultcode value was : " - // + faultCodeElem.getFirstChild().getNodeValue().trim(); - } //End if (faultCode.equals...) - } - else - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - } //End for - } //End if logEntryResponse!= null - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } - - /** - * Check faultCode. - * @param faultCodeElem a faultcode. - * @return true if faultcode is valid. - */ - public boolean isValidFaultCode(Element faultCodeElem) - { - //A faultcode may or maynot have a prefix, if it does its namespace should be - //http://schemas.xmlsoap.org/soap/envelope which is the same as the faultcode element. - //If a prefix is present and it corresponds to a different namespace or is null - //then this returns false. The local part of the faultcode is then check to see - //if it is one of the permitted values. - if (faultCodeElem == null) - return true; - - String faultCode = faultCodeElem.getFirstChild().getNodeValue().trim(); - if (faultCode == null) - return false; - - // FIX: This is not correct, since this element can not be namespace qualified - String faultCodeElemPrefix = faultCodeElem.getParentNode().getPrefix(); - - // If this is not a QName then return false - int index; - String faultCodePrefix = null; - String faultCodeName = faultCode; - if ((index = faultCode.indexOf(':')) != -1) - { - faultCodePrefix = faultCode.substring(0, index); - faultCodeName = faultCode.substring(index + 1, faultCode.length()); - } - - if ((faultCodeElemPrefix != null && faultCodePrefix != null)) - { - if (faultCodePrefix.equals(faultCodeElemPrefix)) - { - if ((faultCodeName.equals("MustUnderstand") - || faultCodeName.equals("VersionMismatch") - || faultCodeName.equals("Client") - || faultCodeName.equals("Server"))) - /* REMOVE: - || faultCodeName.startsWith("MustUnderstand.") - || faultCodeName.startsWith("VersionMismatch.") - || faultCodeName.startsWith("Client.") - || faultCodeName.startsWith("Server."))) - */ - return true; - else - return false; - } - else - { - return true; - } - } - else - { - if (faultCodeName.equals("MustUnderstand") - || faultCodeName.equals("VersionMismatch") - || faultCodeName.equals("Client") - || faultCodeName.equals("Server") - || faultCodeName.startsWith("MustUnderstand.") - || faultCodeName.startsWith("VersionMismatch.") - || faultCodeName.startsWith("Client.") - || faultCodeName.startsWith("Server.")) - return true; - else - return false; - } - } -}
\ No newline at end of file |