Package com.helger.phase4.servlet
Class AS4XServletHandler
java.lang.Object
com.helger.phase4.servlet.AS4XServletHandler
- All Implemented Interfaces:
com.helger.xservlet.handler.IXServletBasicHandler,com.helger.xservlet.handler.simple.IXServletSimpleHandler
public class AS4XServletHandler
extends Object
implements com.helger.xservlet.handler.simple.IXServletSimpleHandler
Main handler for the
AS4Servlet- Author:
- Philip Helger
-
Nested Class Summary
Nested Classes -
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor.AS4XServletHandler(Supplier<? extends IAS4CryptoFactory> aCryptoFactorySupplier, IPModeResolver aPModeResolver, IAS4IncomingAttachmentFactory aIAF) Deprecated, for removal: This API element is subject to removal in a future version.Please use the default constructors and setters -
Method Summary
Modifier and TypeMethodDescriptionprotected AS4IncomingMessageMetadatacreateIncomingMessageMetadata(com.helger.web.scope.IRequestWebScopeWithoutResponse aRequestScope) Create the incoming message metadata based on the provided request.createUnifiedResponse(com.helger.http.EHttpVersion eHTTPVersion, com.helger.commons.http.EHttpMethod eHTTPMethod, jakarta.servlet.http.HttpServletRequest aHttpRequest, com.helger.web.scope.IRequestWebScope aRequestScope) final Supplier<? extends IAS4CryptoFactory>final Supplier<? extends IAS4CryptoFactory>final Supplier<? extends IAS4CryptoFactory>Deprecated, for removal: This API element is subject to removal in a future version.final IPModeResolverprotected voidhandleRequest(com.helger.web.scope.IRequestWebScopeWithoutResponse aRequestScope, AS4UnifiedResponse aHttpResponse, IAS4CryptoFactory aCryptoFactorySign, IAS4CryptoFactory aCryptoFactoryCrypt, IPModeResolver aPModeResolver, IAS4IncomingAttachmentFactory aIAF, IAS4IncomingSecurityConfiguration aISC, AS4XServletHandler.IHandlerCustomizer aHandlerCustomizer) Handle an incoming request.voidhandleRequest(com.helger.web.scope.IRequestWebScopeWithoutResponse aRequestScope, com.helger.servlet.response.UnifiedResponse aUnifiedResponse) final AS4XServletHandlersetCryptoFactoryCryptSupplier(Supplier<? extends IAS4CryptoFactory> aCryptoFactoryCryptSupplier) final AS4XServletHandlersetCryptoFactorySignSupplier(Supplier<? extends IAS4CryptoFactory> aCryptoFactorySignSupplier) final AS4XServletHandlersetCryptoFactorySupplier(Supplier<? extends IAS4CryptoFactory> aCryptoFactorySupplier) Set the same crypto factory supplier for signing and crypting.final AS4XServletHandlersetHandlerCustomizer(AS4XServletHandler.IHandlerCustomizer aHandlerCustomizer) The customizer to be used.final AS4XServletHandlerfinal AS4XServletHandlerfinal AS4XServletHandlersetPModeResolver(IPModeResolver aPModeResolver) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.helger.xservlet.handler.IXServletBasicHandler
onServletDestroy, onServletInitMethods inherited from interface com.helger.xservlet.handler.simple.IXServletSimpleHandler
getLastModificationDateTime, getSupportedETag, initRequestState, onException, onRequestBegin, onRequestEnd
-
Constructor Details
-
AS4XServletHandler
public AS4XServletHandler()Default constructor.- Since:
- 0.9.7
-
AS4XServletHandler
@Deprecated(forRemoval=true, since="2.1.3") public AS4XServletHandler(@Nonnull Supplier<? extends IAS4CryptoFactory> aCryptoFactorySupplier, @Nonnull IPModeResolver aPModeResolver, @Nonnull IAS4IncomingAttachmentFactory aIAF) Deprecated, for removal: This API element is subject to removal in a future version.Please use the default constructors and settersConstructor- Parameters:
aCryptoFactorySupplier- Crypto factory supplier. May not benull.aPModeResolver- PMode resolved to be used. May not benull.aIAF- The attachment factory for incoming attachments. May not benull.- Since:
- v0.9.8
-
-
Method Details
-
getCryptoFactorySupplier
@Nonnull @Deprecated(forRemoval=true, since="2.2.0") public final Supplier<? extends IAS4CryptoFactory> getCryptoFactorySupplier()Deprecated, for removal: This API element is subject to removal in a future version.As the crypto factories for sign and crypt may be different, this general purpose API may not be used anymore. UsegetCryptoFactorySignSupplier()orgetCryptoFactoryCryptSupplier()instead.- Returns:
- The supplier for the
IAS4CryptoFactory. May not benull. - Since:
- 0.9.15
-
getCryptoFactorySignSupplier
- Returns:
- The supplier for the
IAS4CryptoFactoryfor signing. May not benull. - Since:
- 2.2.0
- See Also:
-
getCryptoFactoryCryptSupplier
- Returns:
- The supplier for the
IAS4CryptoFactoryfor crypting. May not benull. - Since:
- 2.2.0
- See Also:
-
setCryptoFactorySupplier
@Nonnull public final AS4XServletHandler setCryptoFactorySupplier(@Nonnull Supplier<? extends IAS4CryptoFactory> aCryptoFactorySupplier) Set the same crypto factory supplier for signing and crypting.- Parameters:
aCryptoFactorySupplier- Crypto factory supplier. May not benull.- Returns:
- this for chaining
- Since:
- 0.9.15
- See Also:
-
setCryptoFactorySignSupplier
@Nonnull public final AS4XServletHandler setCryptoFactorySignSupplier(@Nonnull Supplier<? extends IAS4CryptoFactory> aCryptoFactorySignSupplier) - Parameters:
aCryptoFactorySignSupplier- Crypto factory supplier for signing. May not benull.- Returns:
- this for chaining
- Since:
- 2.2.0
- See Also:
-
setCryptoFactoryCryptSupplier
@Nonnull public final AS4XServletHandler setCryptoFactoryCryptSupplier(@Nonnull Supplier<? extends IAS4CryptoFactory> aCryptoFactoryCryptSupplier) - Parameters:
aCryptoFactoryCryptSupplier- Crypto factory supplier for signing. May not benull.- Returns:
- this for chaining
- Since:
- 2.2.0
- See Also:
-
getPModeResolver
- Returns:
- The
IPModeResolverto be used. Nevernull. - Since:
- 0.9.15
-
setPModeResolver
- Parameters:
aPModeResolver- PMode resolved to be used. May not benull.- Returns:
- this for chaining
- Since:
- 0.9.15
-
getIncomingAttachmentFactory
- Returns:
- The
IAS4IncomingAttachmentFactoryto be used. Nevernull. - Since:
- 0.9.15
-
setIncomingAttachmentFactory
@Nonnull public final AS4XServletHandler setIncomingAttachmentFactory(@Nonnull IAS4IncomingAttachmentFactory aIAF) - Parameters:
aIAF- The attachment factory for incoming attachments. May not benull.- Returns:
- this for chaining
- Since:
- 0.9.15
-
getIncomingSecurityConfiguration
- Returns:
- The
IAS4IncomingSecurityConfigurationto be used. Nevernull. - Since:
- 2.1.3
-
setIncomingSecurityConfiguration
@Nonnull public final AS4XServletHandler setIncomingSecurityConfiguration(@Nonnull IAS4IncomingSecurityConfiguration aICS) - Parameters:
aICS- The incoming security configuration. May not benull.- Returns:
- this for chaining
- Since:
- 2.1.3
-
getHandlerCustomizer
- Returns:
- The additional customizer. May be
null.
-
setHandlerCustomizer
@Nonnull public final AS4XServletHandler setHandlerCustomizer(@Nullable AS4XServletHandler.IHandlerCustomizer aHandlerCustomizer) The customizer to be used.- Parameters:
aHandlerCustomizer- The new customizer. May benull.- Returns:
- this for chaining
-
createUnifiedResponse
@Nonnull public AS4UnifiedResponse createUnifiedResponse(@Nonnull com.helger.http.EHttpVersion eHTTPVersion, @Nonnull com.helger.commons.http.EHttpMethod eHTTPMethod, @Nonnull jakarta.servlet.http.HttpServletRequest aHttpRequest, @Nonnull com.helger.web.scope.IRequestWebScope aRequestScope) - Specified by:
createUnifiedResponsein interfacecom.helger.xservlet.handler.simple.IXServletSimpleHandler
-
createIncomingMessageMetadata
@Nonnull @OverrideOnDemand protected AS4IncomingMessageMetadata createIncomingMessageMetadata(@Nonnull com.helger.web.scope.IRequestWebScopeWithoutResponse aRequestScope) Create the incoming message metadata based on the provided request. This method may be overridden by sub-classes to customize the header generation e.g. when sitting behind a proxy or the like.- Parameters:
aRequestScope- The request scope to use.- Returns:
- New
AS4IncomingMessageMetadataand nevernull. - Since:
- 0.12.0
-
handleRequest
protected void handleRequest(@Nonnull com.helger.web.scope.IRequestWebScopeWithoutResponse aRequestScope, @Nonnull AS4UnifiedResponse aHttpResponse, @Nonnull IAS4CryptoFactory aCryptoFactorySign, @Nonnull IAS4CryptoFactory aCryptoFactoryCrypt, @Nonnull IPModeResolver aPModeResolver, @Nonnull IAS4IncomingAttachmentFactory aIAF, @Nonnull IAS4IncomingSecurityConfiguration aISC, @Nullable AS4XServletHandler.IHandlerCustomizer aHandlerCustomizer) throws Exception Handle an incoming request. Compared tohandleRequest(IRequestWebScopeWithoutResponse, UnifiedResponse)all the member variables are resolved into parameters to make overriding simpler and also avoid the risk of race conditions on members that use the Supplier pattern.- Parameters:
aRequestScope- The request scope. May not benull.aHttpResponse- The HTTP response to be filled. May not benull.aCryptoFactorySign- The AS4 crypto factory to be used for signing. May not benull. Defaults togetCryptoFactorySupplier().get()aCryptoFactoryCrypt- The AS4 crypto factory to be used for crypting. May not benull. Defaults togetCryptoFactorySupplier().get()aPModeResolver- The PMode resolver to be used. May not benull. Defaults togetPModeResolver().aIAF- The factory to parse incoming attachments. May not benull. Defaults togetIncomingAttachmentFactory().aISC- The security configuration to use for incoming data. May not benull. Since v2.1.3.aHandlerCustomizer- An optional callback that can be used to modify the internalAS4RequestHandlerbefore and after processing. May benull.- Throws:
Exception- In case of a processing error- Since:
- 1.3.1
-
handleRequest
public void handleRequest(@Nonnull com.helger.web.scope.IRequestWebScopeWithoutResponse aRequestScope, @Nonnull com.helger.servlet.response.UnifiedResponse aUnifiedResponse) throws Exception - Specified by:
handleRequestin interfacecom.helger.xservlet.handler.simple.IXServletSimpleHandler- Throws:
Exception
-