public class RubanetraSystemConfigurationBuilder extends Object
RubanetraSystemConfiguration
implementation,
that may be used to create a DroolsKrakenProtocolHandler
which in turn is capable of managing the interaction of the Drools rule engine and the Kraken protocol decoder.DroolsKrakenProtocolHandler
,
ConfigurationController
,
RubanetraSystemConfigurationBuilder.RubanetraSystemConfigurationImpl
,
RubanetraSystemConfigurationBaseListenerImpl
Modifier and Type | Method and Description |
---|---|
RubanetraSystemConfigurationBuilder |
addInputPath(String inputPath)
Adds a file-path of a readable file containing data adhering to the specified
RubanetraSystemConfiguration.InputFormat
to the list of files that are to be parsed. |
RubanetraSystemConfigurationBuilder |
addProtocolSetting(KrakenProtocolConfiguration setting)
Adds a concrete protocol configuration to the system's configuration.
|
RubanetraSystemConfiguration |
build()
This should be the last method called, i.e.
|
static RubanetraSystemConfigurationBuilder |
create() |
PcapHandler<PcapActivityListener> |
createPcapHandler()
Creates and sets a
PcapHandler using all already defined
input files, see addInputPath(String) . |
String |
getBpfFilter() |
int |
getBpfNetmask() |
String |
getDroolsBaseModelName() |
File |
getDroolsConfigurationFile() |
String |
getDroolsSessionModelName() |
File |
getInputConfigurationFile() |
Set<File> |
getInputFiles()
This class represents the actual immutable system configuration
|
RubanetraSystemConfiguration.InputFormat |
getInputFormat() |
File |
getOutputConfigurationFile() |
RubanetraSystemConfiguration.OutputFormat |
getOutputFormat() |
OutputStream |
getOutputStream() |
PcapFileHandler<PcapActivityListener> |
getPcapHandler() |
File |
getProtocolConfigurationFile() |
KrakenTransportLayerMappingFactory |
getTransportLayerMappingFactory() |
boolean |
isBpfOptimize() |
boolean |
isSortByFirstTimestamp() |
RubanetraSystemConfigurationBuilder |
setBpfFilter(String bpfFilter)
Sets a Berkeley Packet Filter expression.
|
RubanetraSystemConfigurationBuilder |
setBpfNetmask(int bpfNetmask)
Sets the BPF netmask, default: 0
|
RubanetraSystemConfigurationBuilder |
setBpfOptimize(boolean bpfOptimize)
Whether or not to try to optimize the given BPF expression, default: false
|
RubanetraSystemConfigurationBuilder |
setDroolsBaseModelName(String droolsBaseModelName)
Every Drools knowledge base is identified by a name, this name must be specified only if the default
knowledge base as specified in the Drools configuration file ('kmodule.xml') should not be used.
|
RubanetraSystemConfigurationBuilder |
setDroolsConfigurationPath(String droolsConfigurationString)
The path of the directory containing the drools configuration directory.
|
RubanetraSystemConfigurationBuilder |
setDroolsSessionModelName(String droolsSessionModelName)
Every drools knowledge base may define several
KieSession s,
this parameter must be specified if the default KieSession as specified in the Drools configuration
file ('kmodule.xml') should not be used. |
RubanetraSystemConfigurationBuilder |
setInputConfigurationPath(String inputConfigurationString)
Set the path of the file containing the input configuration.
|
RubanetraSystemConfigurationBuilder |
setInputFormat(String parsedInputFormat)
Sets the format/type of the input files to parse.
|
RubanetraSystemConfigurationBuilder |
setOutputConfigurationPath(String outputConfigurationString)
Set the path of the file containing the output configuration, this file must exist and be readable.
|
void |
setOutputFile(String outputPath)
A convenience method for
setOutputStream(java.io.OutputStream) , i.e. |
RubanetraSystemConfigurationBuilder |
setOutputFormat(String parsedOutputFormat)
The
RubanetraSystemConfiguration.OutputFormat to use
for transforming the written output before it is written. |
RubanetraSystemConfigurationBuilder |
setOutputStream(OutputStream out)
The main output stream for writing the derived and parsed information to.
|
RubanetraSystemConfigurationBuilder |
setOutputWriterStrategy(OutputWriterStrategy outputWriter)
Sets the strategy used to control the serialization process.
|
RubanetraSystemConfigurationBuilder |
setProtocolConfigurationPath(String protocolConfigurationPath)
The path of the file containing the protocol configuration.
|
RubanetraSystemConfigurationBuilder |
setSortByFirstTimestamp(boolean sortByFirstTimestamp)
Sets the flag that specifies whether or not the Pcap file handler should sort the input files according
to the chronological order of their first PCAP entry.
|
public static RubanetraSystemConfigurationBuilder create()
RubanetraSystemConfigurationBuilder
public PcapFileHandler<PcapActivityListener> getPcapHandler()
public RubanetraSystemConfiguration build()
PcapFileHandler
(if it was not defined already) and return an immutable implementation of the system configuration itself.
This method will throw exceptions if invalid settings are encountered.
DroolsKrakenProtocolHandler
RubanetraSystemConfigurationBuilder.RubanetraSystemConfigurationImpl
,
DroolsKrakenProtocolHandler
public PcapHandler<PcapActivityListener> createPcapHandler()
PcapHandler
using all already defined
input files, see addInputPath(String)
. Unless called before invoking build()
, this method
will be called during the final build automatically.IllegalStateException
- if this method was called more than oncepublic RubanetraSystemConfigurationBuilder setBpfFilter(String bpfFilter)
This setting is optional.
bpfFilter
- a String constituting a Berkeley Packet Filter which will be compiled by JNetPcap/libpcappublic RubanetraSystemConfigurationBuilder setBpfOptimize(boolean bpfOptimize)
This setting is optional.
bpfOptimize
- true, iff the compiler should try to optimize the expressionpublic RubanetraSystemConfigurationBuilder setBpfNetmask(int bpfNetmask)
This setting is optional.
bpfNetmask
- the BPF netmask to usepublic RubanetraSystemConfigurationBuilder setDroolsBaseModelName(String droolsBaseModelName)
This setting is optional.
droolsBaseModelName
- the Drools knowledge base to use for fact insertion and deductionpublic RubanetraSystemConfigurationBuilder setDroolsSessionModelName(String droolsSessionModelName)
KieSession
s,
this parameter must be specified if the default KieSession as specified in the Drools configuration
file ('kmodule.xml') should not be used. See http://drools.jboss.org/documentation.
This setting is optional.
droolsSessionModelName
- the Drools session to use for fact insertion and deductionpublic RubanetraSystemConfigurationBuilder setProtocolConfigurationPath(String protocolConfigurationPath)
This setting is mandatory.
protocolConfigurationPath
- the path of the file containing the protocol configurationpublic RubanetraSystemConfigurationBuilder setDroolsConfigurationPath(String droolsConfigurationString)
ENHANCEMENT: This will probably change in the future, as soon as a new way to define the knowledge base is found.
This setting is mandatory.
droolsConfigurationString
- the path of the directory representing the Drools configuration structurepublic RubanetraSystemConfigurationBuilder setInputConfigurationPath(String inputConfigurationString)
This setting is mandatory.
inputConfigurationString
- the path of the file containing the input configurationpublic RubanetraSystemConfigurationBuilder setOutputConfigurationPath(String outputConfigurationString)
This setting is mandatory.
outputConfigurationString
- the path of the file containing the output configurationpublic RubanetraSystemConfigurationBuilder setOutputStream(OutputStream out)
OutputWriterStrategy
performs the actual writing process and transformation.
This setting is mandatory
out
- the output stream to use, may not be nullpublic void setOutputFile(String outputPath)
setOutputStream(java.io.OutputStream)
, i.e. it takes a file path
and sets the output stream setting.
The specified file must be writable.
This setting is optional and replaces the obligation to call setOutputStream(java.io.OutputStream)
outputPath
- the path depicting a file to write topublic RubanetraSystemConfigurationBuilder setOutputFormat(String parsedOutputFormat)
RubanetraSystemConfiguration.OutputFormat
to use
for transforming the written output before it is written.
This setting is mandatory.
parsedOutputFormat
- the output format to use as serialization representationpublic RubanetraSystemConfigurationBuilder setOutputWriterStrategy(OutputWriterStrategy outputWriter)
This setting is mandatory.
outputWriter
- the strategy to usepublic RubanetraSystemConfigurationBuilder addInputPath(String inputPath)
RubanetraSystemConfiguration.InputFormat
to the list of files that are to be parsed.
Please note that a input file handler createPcapHandler()
must not be created before adding all
required input files.
This setting is optional.
inputPath
- a readable file containing data adhering to the configured input format (unchecked)public RubanetraSystemConfigurationBuilder setSortByFirstTimestamp(boolean sortByFirstTimestamp)
sortByFirstTimestamp
- true, iff the first timestamp of each file entry should be used for specifying
the order of the input files.public RubanetraSystemConfigurationBuilder setInputFormat(String parsedInputFormat)
This setting is mandatory.
parsedInputFormat
- the RubanetraSystemConfiguration.InputFormat
of the input files to parsepublic RubanetraSystemConfigurationBuilder addProtocolSetting(KrakenProtocolConfiguration setting)
This setting is optional.
setting
- the protocol configuration to add as a system settingpublic File getProtocolConfigurationFile()
public File getDroolsConfigurationFile()
public File getInputConfigurationFile()
public File getOutputConfigurationFile()
public KrakenTransportLayerMappingFactory getTransportLayerMappingFactory()
public Set<File> getInputFiles()
public RubanetraSystemConfiguration.InputFormat getInputFormat()
public OutputStream getOutputStream()
public RubanetraSystemConfiguration.OutputFormat getOutputFormat()
public String getBpfFilter()
public boolean isBpfOptimize()
public int getBpfNetmask()
public String getDroolsBaseModelName()
public String getDroolsSessionModelName()
public boolean isSortByFirstTimestamp()
Copyright © 2013–2015 Institute of networks and security. All rights reserved.