Class CryptoCoverageChecker

  • All Implemented Interfaces:
    org.apache.cxf.binding.soap.interceptor.SoapInterceptor, org.apache.cxf.interceptor.Interceptor<org.apache.cxf.binding.soap.SoapMessage>, org.apache.cxf.phase.PhaseInterceptor<org.apache.cxf.binding.soap.SoapMessage>
    Direct Known Subclasses:
    DefaultCryptoCoverageChecker

    public class CryptoCoverageChecker
    extends org.apache.cxf.binding.soap.interceptor.AbstractSoapInterceptor
    Utility to enable the checking of WS-Security signature/encryption coverage based on the results of the WSS4J processors. This interceptor provides an alternative to using WS-Policy based configuration for crypto coverage enforcement.
    • Constructor Detail

      • CryptoCoverageChecker

        public CryptoCoverageChecker()
        Creates a new instance. See #setPrefixes() and #setXpaths() for providing configuration options.
      • CryptoCoverageChecker

        public CryptoCoverageChecker​(Map<String,​String> prefixes,
                                     List<CryptoCoverageChecker.XPathExpression> xPaths)
        Creates a new instance that checks for signature coverage over matches to the provided XPath expressions making defensive copies of provided arguments.
        Parameters:
        prefixes - mapping of namespace prefixes to namespace URIs
        xPaths - a list of XPath expressions
    • Method Detail

      • handleMessage

        public void handleMessage​(org.apache.cxf.binding.soap.SoapMessage message)
                           throws org.apache.cxf.interceptor.Fault
        Checks that the WSS4J results refer to the required signed/encrypted elements as defined by the XPath expressions in xPaths.
        Parameters:
        message - the SOAP message containing the signature
        Throws:
        org.apache.cxf.binding.soap.SoapFault - if there is an error evaluating an XPath or an element is not covered by the required cryptographic operation
        org.apache.cxf.interceptor.Fault
      • setXPaths

        public final void setXPaths​(List<CryptoCoverageChecker.XPathExpression> xpaths)
        Sets the XPath expressions to check for, clearing all previously set expressions.
        Parameters:
        xpaths - the XPath expressions to check for
      • addXPaths

        public final void addXPaths​(List<CryptoCoverageChecker.XPathExpression> xpaths)
        Adds the XPath expressions to check for, adding to any previously set expressions.
        Parameters:
        xpaths - the XPath expressions to check for
      • setPrefixes

        public final void setPrefixes​(Map<String,​String> prefixes)
        Sets the mapping of namespace prefixes to namespace URIs, clearing all previously set mappings.
        Parameters:
        prefixes - the mapping of namespace prefixes to namespace URIs
      • addPrefixes

        public final void addPrefixes​(Map<String,​String> prefixes)
        Adds the mapping of namespace prefixes to namespace URIs, adding to any previously set mappings.
        Parameters:
        prefixes - the mapping of namespace prefixes to namespace URIs
      • isCheckFaults

        public boolean isCheckFaults()
      • setCheckFaults

        public void setCheckFaults​(boolean checkFaults)