Class ElasticsearchAuditEventHandler
java.lang.Object
org.forgerock.audit.events.handlers.AuditEventHandlerBase
org.forgerock.audit.handlers.elasticsearch.ElasticsearchAuditEventHandler
- All Implemented Interfaces:
AuditEventHandler,BatchConsumer
AuditEventHandler for Elasticsearch.-
Field Summary
Fields inherited from class org.forgerock.audit.events.handlers.AuditEventHandlerBase
eventTopicsMetaData -
Constructor Summary
ConstructorsConstructorDescriptionElasticsearchAuditEventHandler(ElasticsearchAuditEventHandlerConfiguration configuration, EventTopicsMetaData eventTopicsMetaData, org.forgerock.http.Client client) Create a newElasticsearchAuditEventHandlerinstance. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddToBatch(String topic, org.forgerock.json.JsonValue event, StringBuilder payload) Adds an audit event to an Elasticsearch Bulk API payload.protected StringBuilds an Elasticsearch API base URI.protected StringBuilds a basic authentication header-value, if username and password are provided in configuration.protected StringBuilds an Elasticsearch API URI for Bulk API.protected StringbuildEventUri(String topic, String eventId) Builds an Elasticsearch API URI for operating on a single event (e.g., index, get, etc.).protected StringbuildSearchUri(String topic, int pageSize, int offset) Builds an Elasticsearch API URI for Search API.org.forgerock.util.promise.Promise<Void,BatchException> publishBatch(String payload) Publishes a Bulk API payload to Elasticsearch.org.forgerock.util.promise.Promise<ResourceResponse,ResourceException> publishEvent(org.forgerock.services.context.Context context, String topic, org.forgerock.json.JsonValue event) protected org.forgerock.util.promise.Promise<ResourceResponse,ResourceException> publishSingleEvent(String topic, org.forgerock.json.JsonValue event) Publishes a single event to the provided topic.org.forgerock.util.promise.Promise<QueryResponse,ResourceException> queryEvents(org.forgerock.services.context.Context context, String topic, QueryRequest query, QueryResourceHandler handler) Queries the Elasticsearch Search API for audit events.org.forgerock.util.promise.Promise<ResourceResponse,ResourceException> protected static ResourceExceptionresourceException(String indexName, String topic, String resourceId, org.forgerock.http.protocol.Response response) Gets anExceptionPromisecontaining an Elasticsearch HTTP response status and payload.voidshutdown()voidstartup()Methods inherited from class org.forgerock.audit.events.handlers.AuditEventHandlerBase
getHandledTopics, getName, handleAction, isEnabled
-
Constructor Details
-
ElasticsearchAuditEventHandler
public ElasticsearchAuditEventHandler(ElasticsearchAuditEventHandlerConfiguration configuration, EventTopicsMetaData eventTopicsMetaData, org.forgerock.http.Client client) Create a newElasticsearchAuditEventHandlerinstance.- Parameters:
configuration- Configuration parameters that can be adjusted by system administrators.eventTopicsMetaData- Meta-data for all audit event topics.client- HTTP client ornullto use default client.
-
-
Method Details
-
startup
- Specified by:
startupin interfaceAuditEventHandler- Throws:
ResourceException
-
shutdown
- Specified by:
shutdownin interfaceAuditEventHandler- Throws:
ResourceException
-
queryEvents
public org.forgerock.util.promise.Promise<QueryResponse,ResourceException> queryEvents(org.forgerock.services.context.Context context, String topic, QueryRequest query, QueryResourceHandler handler) Queries the Elasticsearch Search API for audit events.- Specified by:
queryEventsin interfaceAuditEventHandler
-
readEvent
public org.forgerock.util.promise.Promise<ResourceResponse,ResourceException> readEvent(org.forgerock.services.context.Context context, String topic, String resourceId) - Specified by:
readEventin interfaceAuditEventHandler
-
publishEvent
public org.forgerock.util.promise.Promise<ResourceResponse,ResourceException> publishEvent(org.forgerock.services.context.Context context, String topic, org.forgerock.json.JsonValue event) - Specified by:
publishEventin interfaceAuditEventHandler
-
publishSingleEvent
protected org.forgerock.util.promise.Promise<ResourceResponse,ResourceException> publishSingleEvent(String topic, org.forgerock.json.JsonValue event) Publishes a single event to the provided topic.- Parameters:
topic- The topic where to publish the event.event- The event to publish.- Returns:
- a promise with either a response or an exception
-
addToBatch
public void addToBatch(String topic, org.forgerock.json.JsonValue event, StringBuilder payload) throws BatchException Adds an audit event to an Elasticsearch Bulk API payload.- Specified by:
addToBatchin interfaceBatchConsumer- Parameters:
topic- Event topicevent- Event JSON payloadpayload- Elasticsearch Bulk API payload- Throws:
BatchException- indicates failure to add-to-batch
-
publishBatch
Publishes a Bulk API payload to Elasticsearch.- Specified by:
publishBatchin interfaceBatchConsumer- Parameters:
payload- Elasticsearch Bulk API payload
-
buildBasicAuthHeaderValue
Builds a basic authentication header-value, if username and password are provided in configuration.- Returns:
- Basic authentication header-value or
nullif not configured
-
buildEventUri
Builds an Elasticsearch API URI for operating on a single event (e.g., index, get, etc.).- Parameters:
topic- Audit topiceventId- Event ID- Returns:
- URI
-
buildBulkUri
Builds an Elasticsearch API URI for Bulk API.- Returns:
- URI
-
buildSearchUri
Builds an Elasticsearch API URI for Search API.- Parameters:
topic- The audit topic to search.pageSize- The number of results to return.offset- The number of results to skip.- Returns:
- The search uri.
-
buildBaseUri
Builds an Elasticsearch API base URI. The format is,http[s]://host:port/indexName
- Returns:
- Base URI
-
resourceException
protected static ResourceException resourceException(String indexName, String topic, String resourceId, org.forgerock.http.protocol.Response response) Gets anExceptionPromisecontaining an Elasticsearch HTTP response status and payload.- Parameters:
indexName- Index nametopic- Event topicresourceId- Event IDresponse- HTTP response- Returns:
ExceptionPromise
-