Class AbstractAuditInterceptor<T extends WsAuditDataset>
java.lang.Object
org.apache.cxf.phase.AbstractPhaseInterceptor<org.apache.cxf.binding.soap.SoapMessage>
org.apache.cxf.binding.soap.interceptor.AbstractSoapInterceptor
org.openehealth.ipf.commons.ihe.ws.cxf.AbstractSafeInterceptor
org.openehealth.ipf.commons.ihe.ws.cxf.audit.AbstractAuditInterceptor<T>
- All Implemented Interfaces:
org.apache.cxf.binding.soap.interceptor.SoapInterceptor
,Interceptor<org.apache.cxf.binding.soap.SoapMessage>
,PhaseInterceptor<org.apache.cxf.binding.soap.SoapMessage>
- Direct Known Subclasses:
AuditInRequestInterceptor
,AuditOutRequestInterceptor
,AuditResponseInterceptor
public abstract class AbstractAuditInterceptor<T extends WsAuditDataset>
extends AbstractSafeInterceptor
Base class for all ATNA audit-related CXF interceptors.
- Author:
- Dmytro Rud
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
Key used to store audit datasets in Web Service contexts. -
Constructor Summary
ModifierConstructorDescriptionprotected
AbstractAuditInterceptor
(String phase, AuditStrategy<T> auditStrategy, AuditContext auditContext) Constructor which sets a strategy. -
Method Summary
Modifier and TypeMethodDescriptionprotected static void
enrichAuditDatasetFromXuaToken
(org.apache.cxf.binding.soap.SoapMessage message, Header.Direction headerDirection, WsAuditDataset auditDataset) Enriches the given audit dataset with elements from the XUA token (SAML2 assertion) contained in the given CXF message.protected static void
extractAddressesFromServletRequest
(org.apache.cxf.binding.soap.SoapMessage message, WsAuditDataset auditDataset) Extracts service URI and client IP address from the servlet request.protected static void
extractClientCertificateCommonName
(org.apache.cxf.binding.soap.SoapMessage message, WsAuditDataset auditDataset) Extract TLS information from servlet request, if availableprotected static Object
extractPojo
(Message message) Extracts POJO from the given CXF message.protected static void
extractUserIdFromWSAddressing
(org.apache.cxf.binding.soap.SoapMessage message, boolean isInbound, boolean inverseWsaDirection, WsAuditDataset auditDataset) Extracts user ID from an WS-Addressing SOAP header and stores it in the given audit dataset.protected T
getAuditDataset
(org.apache.cxf.binding.soap.SoapMessage message) Returns an audit dataset instance which corresponds to the given message.protected AuditStrategy<T>
Returns the audit strategy associated with this interceptor.static XuaProcessor
Processor for extracting SAML tokens when XUA is usedstatic void
setXuaProcessor
(XuaProcessor xuaProcessor) Processor for extracting SAML tokens when XUA is usedMethods inherited from class org.openehealth.ipf.commons.ihe.ws.cxf.AbstractSafeInterceptor
handleMessage, process
Methods inherited from class org.apache.cxf.binding.soap.interceptor.AbstractSoapInterceptor
getFaultCodePrefix, getRoles, getUnderstoodHeaders, prepareStackTrace
Methods inherited from class org.apache.cxf.phase.AbstractPhaseInterceptor
addAfter, addAfter, addBefore, addBefore, getAdditionalInterceptors, getAfter, getBefore, getId, getPhase, handleFault, isGET, isRequestor, setAfter, setBefore
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.apache.cxf.interceptor.Interceptor
handleFault
-
Field Details
-
DATASET_CONTEXT_KEY
Key used to store audit datasets in Web Service contexts.
-
-
Constructor Details
-
AbstractAuditInterceptor
protected AbstractAuditInterceptor(String phase, AuditStrategy<T> auditStrategy, AuditContext auditContext) Constructor which sets a strategy.- Parameters:
phase
- the phase in which to use this interceptor.auditStrategy
- an audit strategy instance.null
values are explicitly prohibited.
-
-
Method Details
-
getAuditDataset
Returns an audit dataset instance which corresponds to the given message.When no such instance is currently associated with the message, a new one will be created by means of the corresponding
AuditStrategy
and registered in the message's exchange.- Parameters:
message
- CXF message currently handled by this interceptor.- Returns:
- an audit dataset instance, or
null
when this instance could be neither obtained nor created from scratch.
-
getAuditStrategy
Returns the audit strategy associated with this interceptor.- Returns:
- an audit strategy instance or
null
when none configured.
-
extractUserIdFromWSAddressing
protected static void extractUserIdFromWSAddressing(org.apache.cxf.binding.soap.SoapMessage message, boolean isInbound, boolean inverseWsaDirection, WsAuditDataset auditDataset) Extracts user ID from an WS-Addressing SOAP header and stores it in the given audit dataset.- Parameters:
message
- CXF message.isInbound
-true
when the CXF message is an inbound one,false
otherwise.inverseWsaDirection
-true
when direction is actually inversed, i.e. when the user ID should be taken not from the "ReplyTo:" WS-Addressing header, but from "To:" --- useful for asynchronous responses, where the endpoint which receives the response is not the endpoint which sent the request.auditDataset
- target audit dataset.
-
enrichAuditDatasetFromXuaToken
protected static void enrichAuditDatasetFromXuaToken(org.apache.cxf.binding.soap.SoapMessage message, Header.Direction headerDirection, WsAuditDataset auditDataset) Enriches the given audit dataset with elements from the XUA token (SAML2 assertion) contained in the given CXF message.- Parameters:
message
- source CXF message.headerDirection
- direction of the header containing the SAML2 assertion.auditDataset
- target ATNA audit dataset.
-
extractAddressesFromServletRequest
protected static void extractAddressesFromServletRequest(org.apache.cxf.binding.soap.SoapMessage message, WsAuditDataset auditDataset) Extracts service URI and client IP address from the servlet request. -
extractClientCertificateCommonName
protected static void extractClientCertificateCommonName(org.apache.cxf.binding.soap.SoapMessage message, WsAuditDataset auditDataset) Extract TLS information from servlet request, if available -
extractPojo
Extracts POJO from the given CXF message.- Returns:
- POJO or
null
when none found.
-
getXuaProcessor
Processor for extracting SAML tokens when XUA is used -
setXuaProcessor
Processor for extracting SAML tokens when XUA is used -
getAuditContext
-