Visit Nexus to get an overview of Nexus' solutions, read customer cases, access the latest news, and more.


This article describes how to define filter chains in a timestamp service in Nexus Timestamp Server.

Each filter implements one step of the whole process of building the timestamp response. Filters are grouped into filter chains which are executed in sequence.

The primary advantage of the filter architecture is the flexible configuration it enables.

  • A filter chain can be configured from existing filters.
  • Custom functionality can be added by developing new filters.

The list of filters in the filter chain shall be executed in the order they appear in the configuration. If a filter is added to the chain it must be defined in the configuration.

Define filter chain

  1. Open the services.properties configuration file.
  2. Set the applicable parameters, described in this table:

    Name of parameterDescription

    name

    A unique name of the filter chain.
    filters A comma separated list of filter names defined for this timestamp service.
  3. Write filter chains in sections using <N>, where <N> is the number of the chain. See an example below.
Example: Filter chain
[chain.0]
name=Timestamp
filters=GeneralizedTime, MessageImprint, Serialnumber,
SetTSAName, TSAPolicy, CertificateVerifier,
CrlValidator, TSTInfo, TimestampToken,
TimestampResponse

Order of filters

The order of the filters is important. To create a correct timestamp response, place the following filters in the end of the filter chain and in this order:

  • TSTInfo
  • TimestampToken
  • TimestampResponse

The only exception is when the timestamps should be stored in an external database, then a StorageFilter must be the very last one (in the examples named StoreTimestampResponse). See the example below.

Example: Order of filters
[chain.0]
name=Timestamp
filters=GeneralizedTime, Accuracy, Extensions, MessageImprint, Nonce, Ordering, Serialnumber, SetTSAName, TSAPolicy, 
TSTInfo, TimestampToken, TimestampResponse, StoreTimestampResponse