Class AbstractValidatingInterceptor
java.lang.Object
org.springframework.xml.transform.TransformerObjectSupport
org.springframework.ws.server.endpoint.interceptor.AbstractValidatingInterceptor
- All Implemented Interfaces:
org.springframework.beans.factory.InitializingBean, EndpointInterceptor
- Direct Known Subclasses:
AbstractFaultCreatingValidatingInterceptor
public abstract class AbstractValidatingInterceptor
extends TransformerObjectSupport
implements EndpointInterceptor, org.springframework.beans.factory.InitializingBean
Abstract base class for
EndpointInterceptor implementations that validate part
of the message using a schema. The exact message part is determined by the
getValidationRequestSource and getValidationResponseSource template
methods.
By default, only the request message is validated, but this behaviour can be changed
using the validateRequest and validateResponse properties.
- Since:
- 1.0.0
- See Also:
-
Field Summary
Fields inherited from class TransformerObjectSupport
logger -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidafterCompletion(MessageContext messageContext, Object endpoint, @Nullable Exception ex) Does nothing by default.voidorg.springframework.core.io.Resource @Nullable []Returns the schema resources to use for validation.protected abstract @Nullable SourceAbstract template method that returns the part of the request message that is to be validated.protected abstract @Nullable SourcegetValidationResponseSource(WebServiceMessage response) Abstract template method that returns the part of the response message that is to be validated.booleanhandleFault(MessageContext messageContext, Object endpoint) Does nothing by default.booleanhandleRequest(MessageContext messageContext, Object endpoint) Validates the request message in the given message context.protected booleanhandleRequestValidationErrors(MessageContext messageContext, SAXParseException[] errors) Template method that is called when the request message contains validation errors.booleanhandleResponse(MessageContext messageContext, Object endpoint) Validates the response message in the given message context.protected booleanhandleResponseValidationErrors(MessageContext messageContext, SAXParseException[] errors) Template method that is called when the response message contains validation errors.voidsetErrorHandler(ValidationErrorHandler errorHandler) Sets the error handler to use for validation.voidsetSchema(org.springframework.core.io.Resource schema) Sets the schema resource to use for validation.voidsetSchemaLanguage(String schemaLanguage) Sets the schema language.voidsetSchemas(org.springframework.core.io.Resource... schemas) Sets the schema resources to use for validation.voidsetValidateRequest(boolean validateRequest) Indicates whether the request should be validated against the schema.voidsetValidateResponse(boolean validateResponse) Indicates whether the response should be validated against the schema.voidsetXsdSchema(XsdSchema schema) Sets theXsdSchemato use for validation.voidsetXsdSchemaCollection(XsdSchemaCollection schemaCollection) Sets theXsdSchemaCollectionto use for validation.Methods inherited from class TransformerObjectSupport
createTransformer, getTransformerFactory, newTransformerFactory, setTransformerFactoryClass, transform
-
Constructor Details
-
AbstractValidatingInterceptor
public AbstractValidatingInterceptor()
-
-
Method Details
-
getSchemaLanguage
-
setSchemaLanguage
Sets the schema language. Default is the W3C XML Schema:http://www.w3.org/2001/XMLSchema".- See Also:
-
getSchemas
public org.springframework.core.io.Resource @Nullable [] getSchemas()Returns the schema resources to use for validation. -
setSchema
public void setSchema(org.springframework.core.io.Resource schema) Sets the schema resource to use for validation. Setting this property,xsdSchemaCollection,schemas, orxsdSchemais required. -
setSchemas
public void setSchemas(org.springframework.core.io.Resource... schemas) Sets the schema resources to use for validation. Setting this property,xsdSchemaCollection,schema, orxsdSchemais required. -
setXsdSchema
Sets theXsdSchemato use for validation. Setting this property,xsdSchemaCollection,schema, orschemasis required.- Parameters:
schema- the xsd schema to use
-
setXsdSchemaCollection
Sets theXsdSchemaCollectionto use for validation. Setting this property,xsdSchema,schema, orschemasis required.- Parameters:
schemaCollection- the xsd schema collection to use
-
setErrorHandler
Sets the error handler to use for validation. If not set, a default error handler will be used.- Parameters:
errorHandler- the error handler.
-
setValidateRequest
public void setValidateRequest(boolean validateRequest) Indicates whether the request should be validated against the schema. Default istrue. -
setValidateResponse
public void setValidateResponse(boolean validateResponse) Indicates whether the response should be validated against the schema. Default isfalse. -
afterPropertiesSet
-
handleRequest
public boolean handleRequest(MessageContext messageContext, Object endpoint) throws IOException, SAXException, TransformerException Validates the request message in the given message context. Validation only occurs ifvalidateRequestis set totrue, which is the default.Returns
trueif the request is valid, orfalseif it isn't. Additionally, when the request message is aSoapMessage, aSoapFaultis added as response.- Specified by:
handleRequestin interfaceEndpointInterceptor- Parameters:
messageContext- the message contextendpoint- chosen endpoint to invoke- Returns:
trueif the message is valid;falseotherwise- Throws:
IOExceptionSAXExceptionTransformerException- See Also:
-
handleRequestValidationErrors
protected boolean handleRequestValidationErrors(MessageContext messageContext, SAXParseException[] errors) throws TransformerException Template method that is called when the request message contains validation errors. Default implementation logs all errors, and returnsfalse, i.e. do not process the request.- Parameters:
messageContext- the message contexterrors- the validation errors- Returns:
trueto continue processing the request,false(the default) otherwise- Throws:
TransformerException
-
handleResponse
public boolean handleResponse(MessageContext messageContext, Object endpoint) throws IOException, SAXException Validates the response message in the given message context. Validation only occurs ifvalidateResponseis set totrue, which is not the default.Returns
trueif the request is valid, orfalseif it isn't.- Specified by:
handleResponsein interfaceEndpointInterceptor- Parameters:
messageContext- the message context.endpoint- chosen endpoint to invoke- Returns:
trueif the response is valid;falseotherwise- Throws:
IOExceptionSAXException- See Also:
-
handleResponseValidationErrors
protected boolean handleResponseValidationErrors(MessageContext messageContext, SAXParseException[] errors) Template method that is called when the response message contains validation errors. Default implementation logs all errors, and returnsfalse, i.e. do not cot continue to process the response interceptor chain.- Parameters:
messageContext- the message contexterrors- the validation errors- Returns:
trueto continue the response interceptor chain,false(the default) otherwise
-
handleFault
Does nothing by default. Faults are not validated.- Specified by:
handleFaultin interfaceEndpointInterceptor- Parameters:
messageContext- contains both request and response messages, the response should contains a Faultendpoint- chosen endpoint to invoke- Returns:
trueto continue processing of the response interceptor chain;falseto indicate blocking of the response handler chain.- Throws:
Exception
-
afterCompletion
Does nothing by default.- Specified by:
afterCompletionin interfaceEndpointInterceptor- Parameters:
messageContext- contains both request and response messages, the response should contains a Faultendpoint- chosen endpoint to invokeex- exception thrown on handler execution, if any
-
getValidationRequestSource
Abstract template method that returns the part of the request message that is to be validated.- Parameters:
request- the request message- Returns:
- the part of the message that is to validated, or
nullnot to validate anything
-
getValidationResponseSource
Abstract template method that returns the part of the response message that is to be validated.- Parameters:
response- the response message- Returns:
- the part of the message that is to validated, or
nullnot to validate anything
-