Package org.chenile.core.interceptors
Class ValidateCopyHeaders
java.lang.Object
org.chenile.core.interceptors.BaseChenileInterceptor
org.chenile.core.interceptors.ValidateCopyHeaders
- All Implemented Interfaces:
Command<ChenileExchange>
As per HTTP convention, all custom headers start with "x-"
This interceptor copies all headers that start with "x-" into the context.
The context can then be used to read the values by subsequent interceptors and other classes.
If headers start with x-p- then they are considered protected. This means that
they cannot be passed from the outside by the requester. Attempts to pass
them will result in a security exception. This is because we consider such
requests as attempts to hack the system. These internal headers will need to be pushed into the
system by subsequent interceptors.
Please see chenile headers for more details.
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
doPostProcessing
(ChenileExchange exchange) Override this to do post processing.protected void
doPreProcessing
(ChenileExchange exchange) Override this to do pre-processing.Methods inherited from class org.chenile.core.interceptors.BaseChenileInterceptor
bypassInterception, doContinue, execute, getExtensionByAnnotation, getExtensionByAnnotation, resumeFromSavedPoint, savePoint
-
Field Details
-
contextContainer
-
-
Constructor Details
-
ValidateCopyHeaders
public ValidateCopyHeaders()
-
-
Method Details
-
doPreProcessing
Description copied from class:BaseChenileInterceptor
Override this to do pre-processing. This will be called before the service is invoked. Don't expect to see exception or response being set inChenileExchange
. However you can check forChenileExchange.getBody()
to manipulate the body if this interceptor is a Chenile post processor or a service specific or operation specific interceptor.
If this interceptor is a Chenile pre-processor, thenChenileExchange.getBody()
will return null. Then you need to look at headers only.- Overrides:
doPreProcessing
in classBaseChenileInterceptor
-
doPostProcessing
Description copied from class:BaseChenileInterceptor
Override this to do post processing. This will be called even if there is an exception downstream. So make sure that if you don't want to do any processing in case of exception, check ifChenileExchange.getException()
returns null value. If you happen to throw an exception in this method, it will get added to the set of errors that would ultimately be returned. See alsoChenileExchange.setException(Throwable)
- Overrides:
doPostProcessing
in classBaseChenileInterceptor
- Parameters:
exchange
- Chenile Exchange
-