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,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:
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
Fields Modifier and Type Field Description static StringDATASET_CONTEXT_KEYKey used to store audit datasets in Web Service contexts.
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractAuditInterceptor(String phase, AuditStrategy<T> auditStrategy, org.openehealth.ipf.commons.audit.AuditContext auditContext)Constructor which sets a strategy.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected static voidenrichAuditDatasetFromXuaToken(org.apache.cxf.binding.soap.SoapMessage message, org.apache.cxf.headers.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 voidextractAddressesFromServletRequest(org.apache.cxf.binding.soap.SoapMessage message, WsAuditDataset auditDataset)Extracts service URI and client IP address from the servlet request.protected static voidextractClientCertificateCommonName(org.apache.cxf.binding.soap.SoapMessage message, WsAuditDataset auditDataset)Extract TLS information from servlet request, if availableprotected static ObjectextractPojo(org.apache.cxf.message.Message message)Extracts POJO from the given CXF message.protected static voidextractUserIdFromWSAddressing(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.org.openehealth.ipf.commons.audit.AuditContextgetAuditContext()protected TgetAuditDataset(org.apache.cxf.binding.soap.SoapMessage message)Returns an audit dataset instance which corresponds to the given message.protected AuditStrategy<T>getAuditStrategy()Returns the audit strategy associated with this interceptor.static XuaProcessorgetXuaProcessor()Processor for extracting SAML tokens when XUA is usedstatic voidsetXuaProcessor(XuaProcessor xuaProcessor)Processor for extracting SAML tokens when XUA is used-
Methods 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
-
-
-
-
Field Detail
-
DATASET_CONTEXT_KEY
public static final String DATASET_CONTEXT_KEY
Key used to store audit datasets in Web Service contexts.
-
-
Constructor Detail
-
AbstractAuditInterceptor
protected AbstractAuditInterceptor(String phase, AuditStrategy<T> auditStrategy, org.openehealth.ipf.commons.audit.AuditContext auditContext)
Constructor which sets a strategy.- Parameters:
phase- the phase in which to use this interceptor.auditStrategy- an audit strategy instance.nullvalues are explicitly prohibited.
-
-
Method Detail
-
getAuditDataset
protected T getAuditDataset(org.apache.cxf.binding.soap.SoapMessage message)
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
AuditStrategyand registered in the message's exchange.- Parameters:
message- CXF message currently handled by this interceptor.- Returns:
- an audit dataset instance, or
nullwhen this instance could be neither obtained nor created from scratch.
-
getAuditStrategy
protected AuditStrategy<T> getAuditStrategy()
Returns the audit strategy associated with this interceptor.- Returns:
- an audit strategy instance or
nullwhen 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-truewhen the CXF message is an inbound one,falseotherwise.inverseWsaDirection-truewhen 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, org.apache.cxf.headers.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
protected static Object extractPojo(org.apache.cxf.message.Message message)
Extracts POJO from the given CXF message.- Returns:
- POJO or
nullwhen none found.
-
getXuaProcessor
public static XuaProcessor getXuaProcessor()
Processor for extracting SAML tokens when XUA is used
-
setXuaProcessor
public static void setXuaProcessor(XuaProcessor xuaProcessor)
Processor for extracting SAML tokens when XUA is used
-
getAuditContext
public org.openehealth.ipf.commons.audit.AuditContext getAuditContext()
-
-