Search in sources :

Example 1 with IAS4IncomingMessageMetadata

use of com.helger.phase4.messaging.IAS4IncomingMessageMetadata in project phase4 by phax.

the class Phase4PeppolWebAppListener method _initAS4.

private static void _initAS4() {
    AS4ServerInitializer.initAS4Server();
    // Store the incoming file as is
    AS4DumpManager.setIncomingDumper(new AS4IncomingDumperFileBased((aMessageMetadata, aHttpHeaderMap) -> StorageHelper.getStorageFile(aMessageMetadata, ".as4in")) {

        @Override
        public void onEndRequest(@Nonnull final IAS4IncomingMessageMetadata aMessageMetadata) {
            // Save the metadata also to a file
            final File aFile = StorageHelper.getStorageFile(aMessageMetadata, ".metadata");
            if (SimpleFileIO.writeFile(aFile, AS4MessagingHelper.getIncomingMetadataAsJson(aMessageMetadata).getAsJsonString(JsonWriterSettings.DEFAULT_SETTINGS_FORMATTED), StandardCharsets.UTF_8).isFailure())
                LOGGER.error("Failed to write metadata to '" + aFile.getAbsolutePath() + "'");
            else
                LOGGER.info("Wrote metadata to '" + aFile.getAbsolutePath() + "'");
        }
    });
    // Store the outgoings file as well
    AS4DumpManager.setOutgoingDumper(new AS4OutgoingDumperFileBased((eMsgMode, sMessageID, nTry) -> StorageHelper.getStorageFile(sMessageID, nTry, ".as4out")));
}
Also used : X509Certificate(java.security.cert.X509Certificate) ServletRegistration(javax.servlet.ServletRegistration) SMPClientReadOnly(com.helger.smpclient.peppol.SMPClientReadOnly) ETriState(com.helger.commons.state.ETriState) LoggerFactory(org.slf4j.LoggerFactory) MetaAS4Manager(com.helger.phase4.mgr.MetaAS4Manager) AS4ProfileSelector(com.helger.phase4.servlet.mgr.AS4ProfileSelector) AS4Configuration(com.helger.phase4.config.AS4Configuration) StorageHelper(com.helger.phase4.peppol.server.storage.StorageHelper) IUserManager(com.helger.photon.security.user.IUserManager) SLF4JBridgeHandler(org.slf4j.bridge.SLF4JBridgeHandler) JsonWriterSettings(com.helger.json.serialize.JsonWriterSettings) CommandMap(javax.activation.CommandMap) CSecurity(com.helger.photon.security.CSecurity) PrivateKeyEntry(java.security.KeyStore.PrivateKeyEntry) CMimeType(com.helger.commons.mime.CMimeType) Locale(java.util.Locale) Map(java.util.Map) IAS4IncomingMessageMetadata(com.helger.phase4.messaging.IAS4IncomingMessageMetadata) GlobalDebug(com.helger.commons.debug.GlobalDebug) Nonnull(javax.annotation.Nonnull) AS4CryptoFactoryProperties(com.helger.phase4.crypto.AS4CryptoFactoryProperties) Nullable(javax.annotation.Nullable) AS4IncomingDumperFileBased(com.helger.phase4.dump.AS4IncomingDumperFileBased) EPeppolCertificateCheckResult(com.helger.peppol.utils.EPeppolCertificateCheckResult) Logger(org.slf4j.Logger) StringHelper(com.helger.commons.string.StringHelper) AS4OutgoingDumperFileBased(com.helger.phase4.dump.AS4OutgoingDumperFileBased) KeyStore(java.security.KeyStore) WebAppListener(com.helger.photon.core.servlet.WebAppListener) File(java.io.File) StandardCharsets(java.nio.charset.StandardCharsets) WebListener(javax.servlet.annotation.WebListener) AS4DumpManager(com.helger.phase4.dump.AS4DumpManager) AS4ServerInitializer(com.helger.phase4.servlet.AS4ServerInitializer) HttpDebugger(com.helger.httpclient.HttpDebugger) SimpleFileIO(com.helger.commons.io.file.SimpleFileIO) AS4MessagingHelper(com.helger.phase4.messaging.AS4MessagingHelper) URLHelper(com.helger.commons.url.URLHelper) InitializationException(com.helger.commons.exception.InitializationException) PeppolCertificateChecker(com.helger.peppol.utils.PeppolCertificateChecker) CAS4(com.helger.phase4.CAS4) ServletContext(javax.servlet.ServletContext) RequestTrackerSettings(com.helger.xservlet.requesttrack.RequestTrackerSettings) Phase4PeppolServletConfiguration(com.helger.phase4.peppol.servlet.Phase4PeppolServletConfiguration) AS4PeppolProfileRegistarSPI(com.helger.phase4.profile.peppol.AS4PeppolProfileRegistarSPI) PhotonSecurityManager(com.helger.photon.security.mgr.PhotonSecurityManager) IAS4IncomingMessageMetadata(com.helger.phase4.messaging.IAS4IncomingMessageMetadata) AS4IncomingDumperFileBased(com.helger.phase4.dump.AS4IncomingDumperFileBased) File(java.io.File) AS4OutgoingDumperFileBased(com.helger.phase4.dump.AS4OutgoingDumperFileBased)

Example 2 with IAS4IncomingMessageMetadata

use of com.helger.phase4.messaging.IAS4IncomingMessageMetadata in project phase4 by phax.

the class StoringServletMessageProcessorSPI method processAS4UserMessage.

@Nonnull
public AS4MessageProcessorResult processAS4UserMessage(@Nonnull final IAS4IncomingMessageMetadata aMessageMetadata, @Nonnull final HttpHeaderMap aHttpHeaders, @Nonnull final Ebms3UserMessage aUserMessage, @Nonnull final IPMode aPMode, @Nullable final Node aPayload, @Nullable final ICommonsList<WSS4JAttachment> aIncomingAttachments, @Nonnull final IAS4MessageState aState, @Nonnull final ICommonsList<Ebms3Error> aProcessingErrorMessages) {
    LOGGER.info("Received AS4 user message");
    _dumpSoap(aMessageMetadata, aState);
    // Dump all incoming attachments (but only if they are repeatable)
    if (aIncomingAttachments != null) {
        int nAttachmentIndex = 0;
        for (final WSS4JAttachment aIncomingAttachment : aIncomingAttachments) {
            if (aIncomingAttachment.isRepeatable())
                _dumpIncomingAttachment(aMessageMetadata, aIncomingAttachment, nAttachmentIndex);
            nAttachmentIndex++;
        }
    }
    return AS4MessageProcessorResult.createSuccess();
}
Also used : WSS4JAttachment(com.helger.phase4.attachment.WSS4JAttachment) Nonnull(javax.annotation.Nonnull)

Example 3 with IAS4IncomingMessageMetadata

use of com.helger.phase4.messaging.IAS4IncomingMessageMetadata in project phase4 by phax.

the class ExampleReceiveMessageProcessorSPI method processAS4UserMessage.

@Nonnull
public AS4MessageProcessorResult processAS4UserMessage(@Nonnull final IAS4IncomingMessageMetadata aMessageMetadata, @Nonnull final HttpHeaderMap aHttpHeaders, @Nonnull final Ebms3UserMessage aUserMessage, @Nonnull final IPMode aPMode, @Nullable final Node aPayload, @Nullable final ICommonsList<WSS4JAttachment> aIncomingAttachments, @Nonnull final IAS4MessageState aState, @Nonnull final ICommonsList<Ebms3Error> aProcessingErrorMessages) {
    LOGGER.info("Received AS4 user message");
    _dumpSoap(aMessageMetadata, aState);
    if (aIncomingAttachments != null) {
        int nIndex = 1;
        for (final WSS4JAttachment aIncomingAttachment : aIncomingAttachments) {
            final File aFile = StorageHelper.getStorageFile(aMessageMetadata, "-" + nIndex + ".payload");
            if (StreamHelper.copyInputStreamToOutputStream(aIncomingAttachment.getSourceStream(), FileHelper.getOutputStream(aFile)).isFailure())
                LOGGER.error("Failed to write incoming attachment [" + nIndex + "] to '" + aFile.getAbsolutePath() + "'");
            else
                LOGGER.info("Wrote incoming attachment [" + nIndex + "] to '" + aFile.getAbsolutePath() + "'");
            ++nIndex;
        }
    }
    return AS4MessageProcessorResult.createSuccess();
}
Also used : File(java.io.File) WSS4JAttachment(com.helger.phase4.attachment.WSS4JAttachment) Nonnull(javax.annotation.Nonnull)

Example 4 with IAS4IncomingMessageMetadata

use of com.helger.phase4.messaging.IAS4IncomingMessageMetadata in project phase4 by phax.

the class AS4IncomingHandler method parseAS4Message.

public static void parseAS4Message(@Nonnull final IAS4IncomingAttachmentFactory aIAF, @Nonnull @WillNotClose final AS4ResourceHelper aResHelper, @Nonnull final IAS4IncomingMessageMetadata aMessageMetadata, @Nonnull @WillClose final InputStream aPayloadIS, @Nonnull final HttpHeaderMap aHttpHeaders, @Nonnull final IAS4ParsedMessageCallback aCallback, @Nullable final IAS4IncomingDumper aIncomingDumper) throws Phase4Exception, IOException, MessagingException, WSSecurityException {
    // Determine content type
    final String sContentType = aHttpHeaders.getFirstHeaderValue(CHttpHeader.CONTENT_TYPE);
    if (StringHelper.hasNoText(sContentType))
        throw new Phase4Exception("Content-Type header is missing");
    if (LOGGER.isDebugEnabled())
        LOGGER.debug("Received Content-Type string: '" + sContentType + "'");
    final IMimeType aContentType = MimeTypeParser.safeParseMimeType(sContentType);
    if (LOGGER.isDebugEnabled())
        LOGGER.debug("Received Content-Type object: " + aContentType);
    if (aContentType == null)
        throw new Phase4Exception("Failed to parse Content-Type '" + sContentType + "'");
    final IMimeType aPlainContentType = aContentType.getCopyWithoutParameters();
    // Fallback to global dumper if none is provided
    final IAS4IncomingDumper aRealIncomingDumper = aIncomingDumper != null ? aIncomingDumper : AS4DumpManager.getIncomingDumper();
    Document aSoapDocument = null;
    ESoapVersion eSoapVersion = null;
    final ICommonsList<WSS4JAttachment> aIncomingAttachments = new CommonsArrayList<>();
    final Wrapper<OutputStream> aDumpOSHolder = new Wrapper<>();
    if (aPlainContentType.equals(AS4RequestHandler.MT_MULTIPART_RELATED)) {
        // MIME message
        if (LOGGER.isDebugEnabled())
            LOGGER.debug("Received MIME message");
        final String sBoundary = aContentType.getParameterValueWithName("boundary");
        if (StringHelper.hasNoText(sBoundary))
            throw new Phase4Exception("Content-Type '" + sContentType + "' misses 'boundary' parameter");
        if (LOGGER.isDebugEnabled())
            LOGGER.debug("MIME Boundary: '" + sBoundary + "'");
        // Ensure the stream gets closed correctly
        try (final InputStream aRequestIS = AS4DumpManager.getIncomingDumpAwareInputStream(aRealIncomingDumper, aPayloadIS, aMessageMetadata, aHttpHeaders, aDumpOSHolder)) {
            // PARSING MIME Message via MultipartStream
            final MultipartStream aMulti = new MultipartStream(aRequestIS, sBoundary.getBytes(StandardCharsets.ISO_8859_1), (MultipartProgressNotifier) null);
            int nIndex = 0;
            while (true) {
                final boolean bHasNextPart = nIndex == 0 ? aMulti.skipPreamble() : aMulti.readBoundary();
                if (!bHasNextPart)
                    break;
                if (LOGGER.isDebugEnabled())
                    LOGGER.debug("Found MIME part #" + nIndex);
                try (final MultipartItemInputStream aBodyPartIS = aMulti.createInputStream()) {
                    // Read headers AND content
                    final MimeBodyPart aBodyPart = new MimeBodyPart(aBodyPartIS);
                    if (nIndex == 0) {
                        // First MIME part -> SOAP document
                        if (LOGGER.isDebugEnabled())
                            LOGGER.debug("Parsing first MIME part as SOAP document");
                        // Read SOAP document
                        aSoapDocument = DOMReader.readXMLDOM(aBodyPart.getInputStream());
                        IMimeType aPlainPartMT = MimeTypeParser.safeParseMimeType(aBodyPart.getContentType());
                        if (aPlainPartMT != null)
                            aPlainPartMT = aPlainPartMT.getCopyWithoutParameters();
                        // Determine SOAP version from MIME part content type
                        eSoapVersion = ESoapVersion.getFromMimeTypeOrNull(aPlainPartMT);
                        if (eSoapVersion != null && LOGGER.isDebugEnabled())
                            LOGGER.debug("Determined SOAP version " + eSoapVersion + " from Content-Type");
                        if (eSoapVersion == null && aSoapDocument != null) {
                            // Determine SOAP version from the read document
                            eSoapVersion = ESoapVersion.getFromNamespaceURIOrNull(XMLHelper.getNamespaceURI(aSoapDocument));
                            if (eSoapVersion != null && LOGGER.isDebugEnabled())
                                LOGGER.debug("Determined SOAP version " + eSoapVersion + " from XML root element namespace URI");
                        }
                    } else {
                        // MIME Attachment (index is gt 0)
                        if (LOGGER.isDebugEnabled())
                            LOGGER.debug("Parsing MIME part #" + nIndex + " as attachment");
                        final WSS4JAttachment aAttachment = aIAF.createAttachment(aBodyPart, aResHelper);
                        aIncomingAttachments.add(aAttachment);
                    }
                }
                nIndex++;
            }
        }
        if (LOGGER.isDebugEnabled())
            LOGGER.debug("Read MIME message with " + aIncomingAttachments.size() + " attachment(s)");
    } else {
        if (LOGGER.isDebugEnabled())
            LOGGER.debug("Received plain message");
        // Expect plain SOAP - read whole request to DOM
        // Note: this may require a huge amount of memory for large requests
        aSoapDocument = DOMReader.readXMLDOM(AS4DumpManager.getIncomingDumpAwareInputStream(aRealIncomingDumper, aPayloadIS, aMessageMetadata, aHttpHeaders, aDumpOSHolder));
        if (LOGGER.isDebugEnabled())
            if (aSoapDocument != null)
                LOGGER.debug("Successfully parsed payload as XML");
            else
                LOGGER.debug("Failed to parse payload as XML");
        if (aSoapDocument != null) {
            // Determine SOAP version from the read document
            eSoapVersion = ESoapVersion.getFromNamespaceURIOrNull(XMLHelper.getNamespaceURI(aSoapDocument));
            if (eSoapVersion != null && LOGGER.isDebugEnabled())
                LOGGER.debug("Determined SOAP version " + eSoapVersion + " from XML root element namespace URI");
        }
        if (eSoapVersion == null) {
            // Determine SOAP version from content type
            eSoapVersion = ESoapVersion.getFromMimeTypeOrNull(aPlainContentType);
            if (eSoapVersion != null && LOGGER.isDebugEnabled())
                LOGGER.debug("Determined SOAP version " + eSoapVersion + " from Content-Type");
        }
    }
    try {
        if (aSoapDocument == null) {
            // We don't have a SOAP document
            throw new Phase4Exception(eSoapVersion == null ? "Failed to parse incoming message!" : "Failed to parse incoming SOAP " + eSoapVersion.getVersion() + " document!");
        }
        if (eSoapVersion == null) {
            // We're missing a SOAP version
            throw new Phase4Exception("Failed to determine SOAP version of XML document!");
        }
        aCallback.handle(aHttpHeaders, aSoapDocument, eSoapVersion, aIncomingAttachments);
    } finally {
        // Here, the incoming dump is finally ready closed and usable
        if (aRealIncomingDumper != null && aDumpOSHolder.isSet())
            try {
                aRealIncomingDumper.onEndRequest(aMessageMetadata);
            } catch (final Exception ex) {
                LOGGER.error("IncomingDumper.onEndRequest failed. Dumper=" + aRealIncomingDumper + "; MessageMetadata=" + aMessageMetadata, ex);
            }
    }
}
Also used : Wrapper(com.helger.commons.wrapper.Wrapper) IAS4IncomingDumper(com.helger.phase4.dump.IAS4IncomingDumper) MultipartItemInputStream(com.helger.web.multipart.MultipartStream.MultipartItemInputStream) NonBlockingByteArrayInputStream(com.helger.commons.io.stream.NonBlockingByteArrayInputStream) HasInputStream(com.helger.commons.io.stream.HasInputStream) IHasInputStream(com.helger.commons.io.IHasInputStream) InputStream(java.io.InputStream) OutputStream(java.io.OutputStream) Document(org.w3c.dom.Document) AS4DecompressException(com.helger.phase4.attachment.AS4DecompressException) MessagingException(javax.mail.MessagingException) WSSecurityException(org.apache.wss4j.common.ext.WSSecurityException) Phase4Exception(com.helger.phase4.util.Phase4Exception) IOException(java.io.IOException) Phase4Exception(com.helger.phase4.util.Phase4Exception) IMimeType(com.helger.commons.mime.IMimeType) MultipartItemInputStream(com.helger.web.multipart.MultipartStream.MultipartItemInputStream) ESoapVersion(com.helger.phase4.soap.ESoapVersion) MimeBodyPart(javax.mail.internet.MimeBodyPart) MultipartStream(com.helger.web.multipart.MultipartStream) CommonsArrayList(com.helger.commons.collection.impl.CommonsArrayList) WSS4JAttachment(com.helger.phase4.attachment.WSS4JAttachment)

Example 5 with IAS4IncomingMessageMetadata

use of com.helger.phase4.messaging.IAS4IncomingMessageMetadata in project phase4 by phax.

the class AS4IncomingHandler method _parseMessage.

@Nullable
private static IAS4MessageState _parseMessage(@Nonnull final IAS4CryptoFactory aCryptoFactory, @Nonnull final IPModeResolver aPModeResolver, @Nonnull final IAS4IncomingAttachmentFactory aIAF, @Nonnull final IAS4IncomingProfileSelector aAS4ProfileSelector, @Nonnull @WillNotClose final AS4ResourceHelper aResHelper, @Nullable final IPMode aSendingPMode, @Nonnull final Locale aLocale, @Nonnull final IAS4IncomingMessageMetadata aMessageMetadata, @Nonnull final HttpResponse aHttpResponse, @Nonnull final byte[] aResponsePayload, @Nullable final IAS4IncomingDumper aIncomingDumper) throws Phase4Exception {
    // This wrapper will take the result
    final Wrapper<IAS4MessageState> aRetWrapper = new Wrapper<>();
    // Handler for the parsed message
    final IAS4ParsedMessageCallback aCallback = (aHttpHeaders, aSoapDocument, eSoapVersion, aIncomingAttachments) -> {
        final ICommonsList<Ebms3Error> aErrorMessages = new CommonsArrayList<>();
        // Use the sending PMode as fallback, because from the incoming
        // receipt/error it is impossible to detect a PMode
        final SOAPHeaderElementProcessorRegistry aRegistry = SOAPHeaderElementProcessorRegistry.createDefault(aPModeResolver, aCryptoFactory, aSendingPMode);
        // Parse AS4, verify signature etc
        final IAS4MessageState aState = processEbmsMessage(aResHelper, aLocale, aRegistry, aHttpHeaders, aSoapDocument, eSoapVersion, aIncomingAttachments, aAS4ProfileSelector, aErrorMessages);
        if (aState.isSoapHeaderElementProcessingSuccessful()) {
            // Remember the parsed signal message
            aRetWrapper.set(aState);
        } else {
            throw new Phase4Exception("Error processing AS4 message", aState.getSoapWSS4JException());
        }
    };
    // Create header map from response headers
    final HttpHeaderMap aHttpHeaders = new HttpHeaderMap();
    for (final Header aHeader : aHttpResponse.getAllHeaders()) aHttpHeaders.addHeader(aHeader.getName(), aHeader.getValue());
    try (final NonBlockingByteArrayInputStream aPayloadIS = new NonBlockingByteArrayInputStream(aResponsePayload)) {
        // Parse incoming message
        parseAS4Message(aIAF, aResHelper, aMessageMetadata, aPayloadIS, aHttpHeaders, aCallback, aIncomingDumper);
    } catch (final Phase4Exception ex) {
        throw ex;
    } catch (final Exception ex) {
        throw new Phase4Exception("Error parsing AS4 message", ex);
    }
    // This one contains the result
    return aRetWrapper.get();
}
Also used : AS4DecompressException(com.helger.phase4.attachment.AS4DecompressException) AS4SingleSOAPHeader(com.helger.phase4.servlet.soap.AS4SingleSOAPHeader) ESoapVersion(com.helger.phase4.soap.ESoapVersion) HttpHeaderMap(com.helger.commons.http.HttpHeaderMap) XMLHelper(com.helger.xml.XMLHelper) LoggerFactory(org.slf4j.LoggerFactory) MessagingException(javax.mail.MessagingException) CollectionHelper(com.helger.commons.collection.CollectionHelper) Header(org.apache.http.Header) WSSecurityException(org.apache.wss4j.common.ext.WSSecurityException) Locale(java.util.Locale) Document(org.w3c.dom.Document) Map(java.util.Map) IAS4IncomingMessageMetadata(com.helger.phase4.messaging.IAS4IncomingMessageMetadata) PModeLeg(com.helger.phase4.model.pmode.leg.PModeLeg) IAS4IncomingAttachmentFactory(com.helger.phase4.attachment.IAS4IncomingAttachmentFactory) IAS4ProfileValidator(com.helger.phase4.profile.IAS4ProfileValidator) IAS4Profile(com.helger.phase4.profile.IAS4Profile) ICommonsOrderedMap(com.helger.commons.collection.impl.ICommonsOrderedMap) SOAPHeaderElementProcessorRegistry(com.helger.phase4.servlet.soap.SOAPHeaderElementProcessorRegistry) StandardCharsets(java.nio.charset.StandardCharsets) MimeTypeParser(com.helger.commons.mime.MimeTypeParser) AS4DumpManager(com.helger.phase4.dump.AS4DumpManager) Ebms3Error(com.helger.phase4.ebms3header.Ebms3Error) DOMReader(com.helger.xml.serialize.read.DOMReader) ICommonsList(com.helger.commons.collection.impl.ICommonsList) QName(javax.xml.namespace.QName) MultipartItemInputStream(com.helger.web.multipart.MultipartStream.MultipartItemInputStream) Ebms3SignalMessage(com.helger.phase4.ebms3header.Ebms3SignalMessage) Ebms3PartInfo(com.helger.phase4.ebms3header.Ebms3PartInfo) MessageHelperMethods(com.helger.phase4.messaging.domain.MessageHelperMethods) WillClose(javax.annotation.WillClose) MimeBodyPart(javax.mail.internet.MimeBodyPart) IError(com.helger.commons.error.IError) ErrorList(com.helger.commons.error.list.ErrorList) MultipartProgressNotifier(com.helger.web.multipart.MultipartProgressNotifier) MetaAS4Manager(com.helger.phase4.mgr.MetaAS4Manager) IAS4CryptoFactory(com.helger.phase4.crypto.IAS4CryptoFactory) CHttpHeader(com.helger.commons.http.CHttpHeader) MultipartStream(com.helger.web.multipart.MultipartStream) Node(org.w3c.dom.Node) IAS4IncomingDumper(com.helger.phase4.dump.IAS4IncomingDumper) AS4ResourceHelper(com.helger.phase4.util.AS4ResourceHelper) NonBlockingByteArrayInputStream(com.helger.commons.io.stream.NonBlockingByteArrayInputStream) Nonnull(javax.annotation.Nonnull) Phase4Exception(com.helger.phase4.util.Phase4Exception) Nullable(javax.annotation.Nullable) EEbmsError(com.helger.phase4.error.EEbmsError) Ebms3Property(com.helger.phase4.ebms3header.Ebms3Property) OutputStream(java.io.OutputStream) WillNotClose(javax.annotation.WillNotClose) Ebms3UserMessage(com.helger.phase4.ebms3header.Ebms3UserMessage) Logger(org.slf4j.Logger) CommonsArrayList(com.helger.commons.collection.impl.CommonsArrayList) HasInputStream(com.helger.commons.io.stream.HasInputStream) IPMode(com.helger.phase4.model.pmode.IPMode) StringHelper(com.helger.commons.string.StringHelper) IPModeResolver(com.helger.phase4.model.pmode.resolve.IPModeResolver) ChildElementIterator(com.helger.xml.ChildElementIterator) IOException(java.io.IOException) WSS4JAttachment(com.helger.phase4.attachment.WSS4JAttachment) ValueEnforcer(com.helger.commons.ValueEnforcer) Ebms3PullRequest(com.helger.phase4.ebms3header.Ebms3PullRequest) Element(org.w3c.dom.Element) Wrapper(com.helger.commons.wrapper.Wrapper) IHasInputStream(com.helger.commons.io.IHasInputStream) ISOAPHeaderElementProcessor(com.helger.phase4.servlet.soap.ISOAPHeaderElementProcessor) IMimeType(com.helger.commons.mime.IMimeType) Ebms3Receipt(com.helger.phase4.ebms3header.Ebms3Receipt) HttpResponse(org.apache.http.HttpResponse) AS4Helper(com.helger.phase4.model.AS4Helper) AS4XMLHelper(com.helger.phase4.util.AS4XMLHelper) EAS4CompressionMode(com.helger.phase4.attachment.EAS4CompressionMode) InputStream(java.io.InputStream) Wrapper(com.helger.commons.wrapper.Wrapper) ICommonsList(com.helger.commons.collection.impl.ICommonsList) SOAPHeaderElementProcessorRegistry(com.helger.phase4.servlet.soap.SOAPHeaderElementProcessorRegistry) AS4DecompressException(com.helger.phase4.attachment.AS4DecompressException) MessagingException(javax.mail.MessagingException) WSSecurityException(org.apache.wss4j.common.ext.WSSecurityException) Phase4Exception(com.helger.phase4.util.Phase4Exception) IOException(java.io.IOException) NonBlockingByteArrayInputStream(com.helger.commons.io.stream.NonBlockingByteArrayInputStream) HttpHeaderMap(com.helger.commons.http.HttpHeaderMap) Phase4Exception(com.helger.phase4.util.Phase4Exception) AS4SingleSOAPHeader(com.helger.phase4.servlet.soap.AS4SingleSOAPHeader) Header(org.apache.http.Header) CHttpHeader(com.helger.commons.http.CHttpHeader) Nullable(javax.annotation.Nullable)

Aggregations

Nonnull (javax.annotation.Nonnull)10 Ebms3UserMessage (com.helger.phase4.ebms3header.Ebms3UserMessage)7 WSS4JAttachment (com.helger.phase4.attachment.WSS4JAttachment)6 Ebms3Property (com.helger.phase4.ebms3header.Ebms3Property)6 IAS4IncomingMessageMetadata (com.helger.phase4.messaging.IAS4IncomingMessageMetadata)6 Phase4Exception (com.helger.phase4.util.Phase4Exception)6 Nullable (javax.annotation.Nullable)6 Ebms3SignalMessage (com.helger.phase4.ebms3header.Ebms3SignalMessage)5 IOException (java.io.IOException)5 Locale (java.util.Locale)5 Wrapper (com.helger.commons.wrapper.Wrapper)4 IAS4IncomingDumper (com.helger.phase4.dump.IAS4IncomingDumper)4 MessagingException (javax.mail.MessagingException)4 WSSecurityException (org.apache.wss4j.common.ext.WSSecurityException)4 Logger (org.slf4j.Logger)4 LoggerFactory (org.slf4j.LoggerFactory)4 Node (org.w3c.dom.Node)4 CommonsArrayList (com.helger.commons.collection.impl.CommonsArrayList)3 IHasInputStream (com.helger.commons.io.IHasInputStream)3 NonBlockingByteArrayInputStream (com.helger.commons.io.stream.NonBlockingByteArrayInputStream)3