Class AbstractWsSecurityInterceptor
java.lang.Object
org.springframework.ws.soap.security.AbstractWsSecurityInterceptor
- All Implemented Interfaces:
org.springframework.ws.client.support.interceptor.ClientInterceptor,org.springframework.ws.server.EndpointInterceptor,org.springframework.ws.soap.server.SoapEndpointInterceptor
- Direct Known Subclasses:
Wss4jSecurityInterceptor
public abstract class AbstractWsSecurityInterceptor
extends Object
implements org.springframework.ws.soap.server.SoapEndpointInterceptor, org.springframework.ws.client.support.interceptor.ClientInterceptor
Interceptor base class for interceptors that handle WS-Security. Can be used on the
server side, registered in a
endpoint mapping; or on the client side, on the
web service template.
Subclasses of this base class can be configured to secure incoming and secure outgoing messages. By default, both are on.
- Since:
- 1.0.0
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final org.apache.commons.logging.LogLogger available to subclasses.protected static final QName -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidafterCompletion(org.springframework.ws.context.MessageContext messageContext, Exception ex) voidafterCompletion(org.springframework.ws.context.MessageContext messageContext, Object endpoint, Exception ex) protected abstract voidcleanUp()booleanhandleFault(org.springframework.ws.context.MessageContext messageContext) Returnstrue, i.e.booleanhandleFault(org.springframework.ws.context.MessageContext messageContext, Object endpoint) Returnstrue, i.e.protected booleanhandleFaultException(WsSecurityFaultException ex, org.springframework.ws.context.MessageContext messageContext) Handles a fault exception.Default implementation logs the given exception, and creates a SOAP Fault with the properties of the given exception, and returnsfalse.final booleanhandleRequest(org.springframework.ws.context.MessageContext messageContext) Secures a client-side outgoing request.final booleanhandleRequest(org.springframework.ws.context.MessageContext messageContext, Object endpoint) Validates a server-side incoming request.final booleanhandleResponse(org.springframework.ws.context.MessageContext messageContext) Validates a client-side incoming response.final booleanhandleResponse(org.springframework.ws.context.MessageContext messageContext, Object endpoint) Secures a server-side outgoing response.protected booleanhandleSecurementException(WsSecuritySecurementException ex, org.springframework.ws.context.MessageContext messageContext) Handles an securement exception.protected booleanhandleValidationException(WsSecurityValidationException ex, org.springframework.ws.context.MessageContext messageContext) Handles an invalid SOAP message.protected abstract voidsecureMessage(org.springframework.ws.soap.SoapMessage soapMessage, org.springframework.ws.context.MessageContext messageContext) Abstract template method.voidsetExceptionResolver(org.springframework.ws.server.EndpointExceptionResolver exceptionResolver) Provide anEndpointExceptionResolverfor resolving validation exceptions.voidsetSecureRequest(boolean secureRequest) Indicates whether client-side outgoing requests are to be secured.voidsetSecureResponse(boolean secureResponse) Indicates whether server-side outgoing responses are to be secured.voidsetSkipValidationIfNoHeaderPresent(boolean skipValidationIfNoHeaderPresent) Allows skipping validation if no security header is present.voidsetValidateRequest(boolean validateRequest) Indicates whether server-side incoming request are to be validated.voidsetValidateResponse(boolean validateResponse) Indicates whether client-side incoming responses are to be validated.booleanunderstands(org.springframework.ws.soap.SoapHeaderElement headerElement) protected abstract voidvalidateMessage(org.springframework.ws.soap.SoapMessage soapMessage, org.springframework.ws.context.MessageContext messageContext) Abstract template method.
-
Field Details
-
logger
protected final org.apache.commons.logging.Log loggerLogger available to subclasses. -
WS_SECURITY_NAME
-
-
Constructor Details
-
AbstractWsSecurityInterceptor
public AbstractWsSecurityInterceptor()
-
-
Method Details
-
setValidateRequest
public void setValidateRequest(boolean validateRequest) Indicates whether server-side incoming request are to be validated. Defaults totrue. -
setSecureResponse
public void setSecureResponse(boolean secureResponse) Indicates whether server-side outgoing responses are to be secured. Defaults totrue. -
setSecureRequest
public void setSecureRequest(boolean secureRequest) Indicates whether client-side outgoing requests are to be secured. Defaults totrue. -
setValidateResponse
public void setValidateResponse(boolean validateResponse) Indicates whether client-side incoming responses are to be validated. Defaults totrue. -
setExceptionResolver
public void setExceptionResolver(org.springframework.ws.server.EndpointExceptionResolver exceptionResolver) Provide anEndpointExceptionResolverfor resolving validation exceptions. -
setSkipValidationIfNoHeaderPresent
public void setSkipValidationIfNoHeaderPresent(boolean skipValidationIfNoHeaderPresent) Allows skipping validation if no security header is present. -
handleRequest
public final boolean handleRequest(org.springframework.ws.context.MessageContext messageContext, Object endpoint) throws Exception Validates a server-side incoming request. Delegates tovalidateMessage(org.springframework.ws.soap.SoapMessage,org.springframework.ws.context.MessageContext)if thevalidateRequestproperty istrue.- Specified by:
handleRequestin interfaceorg.springframework.ws.server.EndpointInterceptor- Parameters:
messageContext- the message context, containing the request to be validatedendpoint- chosen endpoint to invoke- Returns:
trueif the request was valid;falseotherwise.- Throws:
Exception- in case of errors- See Also:
-
handleResponse
public final boolean handleResponse(org.springframework.ws.context.MessageContext messageContext, Object endpoint) throws Exception Secures a server-side outgoing response. Delegates tosecureMessage(org.springframework.ws.soap.SoapMessage,org.springframework.ws.context.MessageContext)if thesecureResponseproperty istrue.- Specified by:
handleResponsein interfaceorg.springframework.ws.server.EndpointInterceptor- Parameters:
messageContext- the message context, containing the response to be securedendpoint- chosen endpoint to invoke- Returns:
trueif the response was secured;falseotherwise.- Throws:
Exception- in case of errors- See Also:
-
handleFault
public boolean handleFault(org.springframework.ws.context.MessageContext messageContext, Object endpoint) throws Exception Returnstrue, i.e. fault responses are not secured.- Specified by:
handleFaultin interfaceorg.springframework.ws.server.EndpointInterceptor- Throws:
Exception
-
afterCompletion
public void afterCompletion(org.springframework.ws.context.MessageContext messageContext, Object endpoint, Exception ex) - Specified by:
afterCompletionin interfaceorg.springframework.ws.server.EndpointInterceptor
-
understands
public boolean understands(org.springframework.ws.soap.SoapHeaderElement headerElement) - Specified by:
understandsin interfaceorg.springframework.ws.soap.server.SoapEndpointInterceptor
-
handleRequest
public final boolean handleRequest(org.springframework.ws.context.MessageContext messageContext) throws org.springframework.ws.client.WebServiceClientException Secures a client-side outgoing request. Delegates tosecureMessage(org.springframework.ws.soap.SoapMessage,org.springframework.ws.context.MessageContext)if thesecureRequestproperty istrue.- Specified by:
handleRequestin interfaceorg.springframework.ws.client.support.interceptor.ClientInterceptor- Parameters:
messageContext- the message context, containing the request to be secured- Returns:
trueif the response was secured;falseotherwise.- Throws:
org.springframework.ws.client.WebServiceClientException- See Also:
-
handleResponse
public final boolean handleResponse(org.springframework.ws.context.MessageContext messageContext) throws org.springframework.ws.client.WebServiceClientException Validates a client-side incoming response. Delegates tovalidateMessage(org.springframework.ws.soap.SoapMessage,org.springframework.ws.context.MessageContext)if thevalidateResponseproperty istrue.- Specified by:
handleResponsein interfaceorg.springframework.ws.client.support.interceptor.ClientInterceptor- Parameters:
messageContext- the message context, containing the response to be validated- Returns:
trueif the request was valid;falseotherwise.- Throws:
org.springframework.ws.client.WebServiceClientException- See Also:
-
handleFault
public boolean handleFault(org.springframework.ws.context.MessageContext messageContext) throws org.springframework.ws.client.WebServiceClientException Returnstrue, i.e. fault responses are not validated.- Specified by:
handleFaultin interfaceorg.springframework.ws.client.support.interceptor.ClientInterceptor- Throws:
org.springframework.ws.client.WebServiceClientException
-
afterCompletion
public void afterCompletion(org.springframework.ws.context.MessageContext messageContext, Exception ex) throws org.springframework.ws.client.WebServiceClientException - Specified by:
afterCompletionin interfaceorg.springframework.ws.client.support.interceptor.ClientInterceptor- Throws:
org.springframework.ws.client.WebServiceClientException
-
handleSecurementException
protected boolean handleSecurementException(WsSecuritySecurementException ex, org.springframework.ws.context.MessageContext messageContext) Handles an securement exception. Default implementation logs the given exception, and returnsfalse.- Parameters:
ex- the validation exceptionmessageContext- the message context- Returns:
trueto continue processing the message,false(the default) otherwise
-
handleValidationException
protected boolean handleValidationException(WsSecurityValidationException ex, org.springframework.ws.context.MessageContext messageContext) Handles an invalid SOAP message. Default implementation logs the given exception, delegates to the setexceptionResolverif any, or creates a SOAP 1.1 Client or SOAP 1.2 Sender Fault with the exception message as fault string, and returnsfalse.- Parameters:
ex- the validation exceptionmessageContext- the message context- Returns:
trueto continue processing the message,false(the default) otherwise
-
handleFaultException
protected boolean handleFaultException(WsSecurityFaultException ex, org.springframework.ws.context.MessageContext messageContext) Handles a fault exception.Default implementation logs the given exception, and creates a SOAP Fault with the properties of the given exception, and returnsfalse.- Parameters:
ex- the validation exceptionmessageContext- the message context- Returns:
trueto continue processing the message,false(the default) otherwise
-
validateMessage
protected abstract void validateMessage(org.springframework.ws.soap.SoapMessage soapMessage, org.springframework.ws.context.MessageContext messageContext) throws WsSecurityValidationException Abstract template method. Subclasses are required to validate the request contained in the givenSoapMessage, and replace the original request with the validated version.- Parameters:
soapMessage- the soap message to validate- Throws:
WsSecurityValidationException- in case of validation errors
-
secureMessage
protected abstract void secureMessage(org.springframework.ws.soap.SoapMessage soapMessage, org.springframework.ws.context.MessageContext messageContext) throws WsSecuritySecurementException Abstract template method. Subclasses are required to secure the response contained in the givenSoapMessage, and replace the original response with the secured version.- Parameters:
soapMessage- the soap message to secure- Throws:
WsSecuritySecurementException- in case of securement errors
-
cleanUp
protected abstract void cleanUp()
-