org.springframework.ws.soap.security
Class AbstractWsSecurityInterceptor

java.lang.Object
  extended by org.springframework.ws.soap.security.AbstractWsSecurityInterceptor
All Implemented Interfaces:
org.springframework.ws.server.EndpointInterceptor, org.springframework.ws.soap.server.SoapEndpointInterceptor
Direct Known Subclasses:
XwsSecurityInterceptor

public abstract class AbstractWsSecurityInterceptor
extends java.lang.Object
implements org.springframework.ws.soap.server.SoapEndpointInterceptor

Interceptor base class for interceptors that handle WS-Security.

Subclasses of this base class can be configured to validate incoming and secure outgoing messages. By default, both are on.

Since:
1.0.0
Author:
Arjen Poutsma

Field Summary
protected  org.apache.commons.logging.Log logger
          Logger available to subclasses.
 
Constructor Summary
AbstractWsSecurityInterceptor()
           
 
Method Summary
protected abstract  void cleanUp()
           
 boolean handleFault(org.springframework.ws.context.MessageContext messageContext, java.lang.Object endpoint)
          Returns true, i.e.
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 returns false.
 boolean handleRequest(org.springframework.ws.context.MessageContext messageContext, java.lang.Object endpoint)
           
 boolean handleResponse(org.springframework.ws.context.MessageContext messageContext, java.lang.Object endpoint)
           
protected  boolean handleSecurementException(WsSecuritySecurementException ex, org.springframework.ws.context.MessageContext messageContext)
          Handles an securement exception.
protected  boolean handleValidationException(WsSecurityValidationException ex, org.springframework.ws.context.MessageContext messageContext)
          Handles an invalid SOAP message.
protected abstract  void secureMessage(org.springframework.ws.soap.SoapMessage soapMessage)
          Abstract template method.
 void setSecureResponse(boolean secureResponse)
          Indicates whether outgoing responsed are to be secured.
 void setValidateRequest(boolean validateRequest)
          Indicates whether incoming request are to be validated.
 boolean understands(org.springframework.ws.soap.SoapHeaderElement headerElement)
           
protected abstract  void validateMessage(org.springframework.ws.soap.SoapMessage soapMessage)
          Abstract template method.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

protected final org.apache.commons.logging.Log logger
Logger available to subclasses.

Constructor Detail

AbstractWsSecurityInterceptor

public AbstractWsSecurityInterceptor()
Method Detail

setSecureResponse

public void setSecureResponse(boolean secureResponse)
Indicates whether outgoing responsed are to be secured. Defaults to true.


setValidateRequest

public void setValidateRequest(boolean validateRequest)
Indicates whether incoming request are to be validated. Defaults to true.


handleRequest

public final boolean handleRequest(org.springframework.ws.context.MessageContext messageContext,
                                   java.lang.Object endpoint)
                            throws java.lang.Exception
Specified by:
handleRequest in interface org.springframework.ws.server.EndpointInterceptor
Throws:
java.lang.Exception

handleResponse

public final boolean handleResponse(org.springframework.ws.context.MessageContext messageContext,
                                    java.lang.Object endpoint)
                             throws java.lang.Exception
Specified by:
handleResponse in interface org.springframework.ws.server.EndpointInterceptor
Throws:
java.lang.Exception

handleFault

public boolean handleFault(org.springframework.ws.context.MessageContext messageContext,
                           java.lang.Object endpoint)
                    throws java.lang.Exception
Returns true, i.e. faults are not secured.

Specified by:
handleFault in interface org.springframework.ws.server.EndpointInterceptor
Throws:
java.lang.Exception

understands

public boolean understands(org.springframework.ws.soap.SoapHeaderElement headerElement)
Specified by:
understands in interface org.springframework.ws.soap.server.SoapEndpointInterceptor

handleSecurementException

protected boolean handleSecurementException(WsSecuritySecurementException ex,
                                            org.springframework.ws.context.MessageContext messageContext)
Handles an securement exception. Default implementation logs the given exception, and returns false.

Parameters:
ex - the validation exception
messageContext - the message context
Returns:
true to 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, and creates a SOAP 1.1 Client or SOAP 1.2 Sender Fault with the exception message as fault string, and returns false.

Parameters:
ex - the validation exception
messageContext - the message context
Returns:
true to 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 returns false.

Parameters:
ex - the validation exception
messageContext - the message context
Returns:
true to continue processing the message, false (the default) otherwise

validateMessage

protected abstract void validateMessage(org.springframework.ws.soap.SoapMessage soapMessage)
                                 throws WsSecurityValidationException
Abstract template method. Subclasses are required to validate the request contained in the given SoapMessage, 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)
                               throws WsSecuritySecurementException
Abstract template method. Subclasses are required to secure the response contained in the given SoapMessage, 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()


Copyright � 2005-2008 The Spring Web Services Framework. All Rights Reserved.