All Classes
Class | Description |
---|---|
AbstractContextualDeserializer<T> |
Implementation of Jackson's JsonDeserializer and ContextualDeserializer which
obtains the intended target type of the data to be deserialized through Jackson's
ContextualDeserializer.createContextual method.
|
AbstractContextualPojoDeserializer<POJO extends DbPojo,DAO extends Dao<POJO>> |
Further implementation of AbstractContextualDeserializer that is specific to POJOs,
and which also obtains the appropriate Dao for the pojo type provided
|
AbstractPojoLookupDao<POJO extends DbPojo> |
Abstract dao which implements some methods and functionality common to all lookup daos
|
AcceptAnySSL |
Static utility class for constructing a Jersey client that accepts any SSL certificate
|
Acl |
Represents a reusable "object lookup", for an acl object returned from the
Nessus API at /scans/<scan-id>
|
AddHostId |
Used by ScanHostResponse in its list of Vulnerabilities, to include the Nessus host_id
within each Vulnerability, in order to imitate the Nessus API.
|
Cpe |
Represents a MySQL longtext field from the cpe lookup table, that is indexed by a SHA-512 hash
|
CvssTemporalVector |
Represents a simple string/varchar lookup from the cvss_temporal_vector table
|
CvssVector |
Represents a simple string/varchar lookup from the cvss_vector table
|
Dao<POJO extends DbPojo> |
Standard generic dao.
|
Dao.SessionTracker |
Session tracker used to track the daos and invocations that are using an
open session
|
Database |
Provides access to the database
Created on 8/31/16.
|
DbException |
The type Db exception.
|
DbManagerJob |
DbManager Job manages the pile of dbTasks which other threads will provide.
|
DbManagerJob.Child |
Jobs which implement DbManager.Child are the jobs which do all of the fetching
and pre-processing before providing dbTasks to the db manager.
|
DbPojo | |
EpochTimestamp |
Includes two inner classes for deserializing and serializing epoch timestamps between
a JSON integer (representing seconds) and java.sql.Timestamp
|
EpochTimestamp.Deserializer |
Deserializes a JSON integer representing seconds into a java.sql.Timestamp
|
EpochTimestamp.Serializer |
Serializes a java.sql.Timestamp into a JSON integer based on epoch seconds
|
ExtensibleJsonPojo |
Abstract base class that implements ExtraJson behavior for most pojos other than string lookups.
|
ExtraJson |
Represents a reusable extra json lookup, for any unexpected json returned from the
Nessus API
|
ExtraJson.Converter |
Hibernate converter.
|
ExtraJson.JsonMap |
A wrapper for the map representing the key-value pairs of the ExtraJson.
|
FilterForPlugin |
Quick and dirty utility for filtering all of the JSON outputs in demo-output, to
include only the ones with plugin data.
|
Folder |
Represents a folder object returned by the Nessus API in /scans
|
FriendlyTimestamp |
Includes three inner classes for serializing timestamps from different formats into a single
"human friendly" timestamp format.
|
FriendlyTimestamp.JsString |
Serializes a standard JavaScript timestamp string into a "human friendly" output format
|
FriendlyTimestamp.NumericString |
Serializes a "numeric string" date/time format into a "human friendly" output format,
e.g.
|
FriendlyTimestamp.Sql |
Serializes a java.sql.Timestamp into a "human friendly" output format,
e.g.
|
GeneratedIdPojo |
Represents POJOs with extensible JSON and a generated surrogate primary key id
|
GenericClient |
Abstract generic client with methods for fetching resources at URLS, adding HTTP headers,
and JSON deserialization
|
Hash |
Represents a "lazy" or "dirty" SHA-512 hash of a string lookup or object lookup.
|
Hash.Converter |
Converts Hash instances back and forth between the database varbinary datatype
and the hash fields in the ORM.
|
HashLookupDao<POJO extends HashLookupPojo<POJO>> |
Dao used for object lookups that are indexed by their hash.
|
HashLookupPojo<POJO extends HashLookupPojo<POJO>> |
Interface for "complex lookup" (or "object lookup") pojos, which use a hash of their
serialized JSON for indexing and ensuring uniqueness.
|
HashLookupTemplate<POJO extends HashLookupTemplate<POJO>> |
The standard implementation of the HashLookupPojo interface.
|
HostFqdn |
Represents a simple string/varchar lookup from the host_fqdn table
|
HostIp |
Represents a simple string/varchar lookup from the host_ip table
|
Hostname |
Represents a simple string/varchar lookup from the hostname table
|
HostNetbiosName |
Represents a simple string/varchar lookup from the host_netbios_name table
|
HostOutput | |
HostOutputToArray |
Serializes a HostOutput instance as an array of HostVulnerabilityOutputs
|
HostVulnerabilityOutput | |
HostVulnerabilityOutput.ScanHostSummary | |
HostVulnerabilityOutput.ScanSummary | |
HostVulnsJob |
Takes a given scanResponse and host from the scanResponse, and fetches the host vulnerability
data from the Nessus API about that host.
|
IndexJob |
Fetches the index of scans and folders from the root of the Nessus API.
|
IndexResponse |
The index response represents Nessus API responses at the root of the API
|
InstancesTracker<K,I> |
Synchronizes and maps unique instances to a unique "key" (typically a String, Number, or Hash).
|
InstancesTracker.AlreadyFinalized |
Thrown when an unexpected state is reached during create lock finalization.
|
InstancesTracker.CreateLockException |
Thrown when a construct-lambda holding a create lock tries to obtain another create lock.
|
InstancesTracker.InstancesTrackerException |
Abstract supertype of all specialized exceptions thrown by InstanceTracker
|
InstancesTracker.KeyFinalizer<K extends InstancesTracker.KeyFinalizer<K,I>,I> |
The interface Key finalizer, which may be implemented by custom keys.
|
InstancesTracker.NullInstanceArgument |
Thrown when a null instance is passed to put or putWithLock
|
InstancesTracker.NullKeyArgument |
Thrown when a null key is passed to a construct method
|
InstancesTracker.TrackerDiscontinuedException |
Thrown if the instances tracker was discontinued because it was replaced by another
tracker with the same key and argument types and type params
|
InstancesTracker.UnrecognizedInstance |
Thrown when an instance is passed to a method requiring an instance argument
that was not constructed under the lock of the given instancesTracker
|
Job |
Represents a Job that will be queued by the JobFactory and run by a WorkerThread.
|
Job.Stage |
The enum Stage, which represents the step in the job process which the jobs is at.
|
JobFactory |
Manages all jobs and job scheduling for the main thread.
|
KeyValueType<K,V> |
Represents a pair of Types, representing a key and a value
|
Lambda0<R> |
Zero-argument lambda with a returned value
|
Lambda1<A,R> |
One-argument lambda with a return value
|
Lambda2<A,B,R> |
Two-argument lambda with a return value
|
License |
Represents a reusable "object lookup", for a license object returned from the
Nessus API at /scans/<scan-id>
|
Lists |
Utility serializers for serializing empty lists as null, and for sorting lists prior to
serializing
|
Lists.EmptyToNullSerializer<T> |
Serializer which converts an empty list to a null JSON output
|
Lists.SortSerializer<T extends java.lang.Comparable> |
Serializer which sorts a list of Comparables before serializing it
|
Lookup |
Includes two inner classes for serializing / deserializing StringLookupPojos
|
Lookup.Deserializer<POJO extends StringLookupPojo<POJO>,DAO extends Dao<POJO> & StringLookupDao<POJO>> |
Converts a JSON string into the appropriate StringLookupPojo instance of
the type provided by the AbstractContextualPojoDeserializer super class
|
Lookup.Serializer<POJO extends StringLookupPojo<POJO>> |
Serializes a StringLookupPojo of any type into the JSON string that it represents
|
LookupException |
Exception thrown when there is unexpected behavior during a lookup dao
operation
|
Main |
The entry point to the TenaPull application.
|
MakeMap |
Static utility for making a map from an array of Objects.
|
MapLookupDao<POJO extends MapLookupPojo<POJO>> |
Dao used for map lookup pojos, where a DB record can be matched by a search map
or the _match function.
|
MapLookupPojo<POJO extends MapLookupPojo> |
A "complex lookup" or "object lookup" altnerative to the HashLookupPojo interface
Rather than using a hash of the object, this approach using a search map instead.
|
MultiType |
Includes two inner classes for serializing and deserializing the MultiTypeWrapper, which is
capable of representing more than one primitive type (e.g.
|
MultiType.Deserializer |
Deserializes a JSON value of an unknown primitive type into a MultiTypeWrapper
|
MultiType.Serializer |
Serializes a MultiTypeWrapper into the appropriate JSON primitive
|
MultiTypeWrapper |
Used to represent a field which may have multiple JSON primitive data types.
|
MultiTypeWrapper.Converter |
Hibernate converter, for converting between a string for the DB and a MultiTypeWrapper
instance
|
NaturalIdPojo |
Represents POJOs with extensible JSON and a natural primary key id provided by the Nessus API
|
NessusClient |
The NessusClient for fetching response from a specific Nessus installation provided in the configurations
first parsed by Main
|
NessusResponse<RES extends NessusResponse<RES>> |
Interface representing a response from the Nessus API, with some utility abstract classes
that can be implemented by nested objects within a response, in order to link those
objects to the parent response entity
|
NessusResponse.MultiChildTemplate<POJO extends NessusResponse.MultiChildTemplate<POJO,R>,R extends NessusResponse> |
Represents a nested entity with a Many-to-one relationship with the response
|
NessusResponse.ResponseChild<POJO extends NessusResponse.ResponseChild<POJO,R>,R extends NessusResponse> |
The interface Response child, which can be implemented by any
nested child entities within the parent response
|
NessusResponse.SingleChildTemplate<POJO extends NessusResponse.SingleChildTemplate<POJO,R>,R extends NessusResponse> |
Represents a nested entity with a one-to-one relationship with the response
|
NessusResponseGenerateTimestamp<RES extends NessusResponseGenerateTimestamp<RES>> |
Abstract implementation of the NessusResponse interface, which generates a timestamp at the time
of instantiation, because the Nessus API does not provide a timestamp.
|
NessusResponseWithTimestamp<RES extends NessusResponseWithTimestamp<RES>> |
Abstract implementation of the NessusResponse interface, which uses the timestamp
provided by the Nessus API
|
NestedJsonArray<P extends ExtensibleJsonPojo,C extends DbPojo> |
Used to "wrap" an array of objects inside an intermediate JSON object, even though the original list
belongs to the parent object.
|
OperatingSystem |
Represents a MySQL longtext field from the operating_system lookup table,
that is indexed by a SHA-512 hash
|
OutputMixIns |
A non-instantiable class containing a series of inner classes (also non-instantiable
by extension, since they are not *static* inner classes) to be used as ObjectMapper mix-ins
when serializing the output.
|
Plugin |
Represents a reusable "object lookup", for the plugin objects (except the scan-specific fields, represented
by ScanPlugin) returned from the Nessus API at /scans/<scan-id>
|
PluginAttributes |
Represents a reusable "object lookup", for a plugin_attributes object returned from the
Nessus API at /scans/<scan-id>
|
PluginDescription |
Represents a MySQL longtext field from the plugin_description lookup table,
that is indexed by a SHA-512 hash
|
PluginFamily |
Represents a simple string/varchar lookup from the plugin_family table
|
PluginHost |
Represents a reusable "object lookup", for an object in the hosts list within each
plugin returned from the Nessus API at /scans/<scan-id>
|
PluginInformation |
Represents a reusable "object lookup", for the information object included
in the plugin attributes returned from the Nessus API at /scans/<scan-id>
|
PluginName |
Represents a simple string/varchar lookup from the plugin_name table
|
PluginRefInformation |
Represents a reusable "object lookup", for the "ref" object included
in the plugin attributes returned from the Nessus API at /scans/<scan-id>
|
PluginRefValue |
Represents a simple string/varchar lookup from the plugin_ref_value table
|
PluginRiskFactor |
Represents a simple string/varchar lookup from the plugin_risk_factor table
|
PluginRiskInformation |
Represents a reusable "object lookup", for the "risk_information" object included
in the plugin attributes returned from the Nessus API at /scans/<scan-id>
|
PluginScriptCopyright |
Represents a MySQL longtext field from the plugin_description lookup table,
that is indexed by a SHA-512 hash
|
PluginSeeAlso |
Represents a simple string/varchar lookup from the plugin_see_also table
|
PluginSolution |
Represents a MySQL longtext field from the plugin_solution lookup table,
that is indexed by a SHA-512 hash
|
PluginSynopsis |
Represents a MySQL longtext field from the plugin_synopsis lookup table,
that is indexed by a SHA-512 hash
|
PluginVulnInformation |
Represents a reusable "object lookup", for the vuln_information object included
in the plugin attributes returned from the Nessus API at /scans/<scan-id>
|
PolicyTemplateUuid |
Represents a simple string/varchar lookup from the policy_template_uuid table
|
ReadWriteLock<O,R> |
Simple class for synchronizing concurrent read access and exclusive write access to an object.
|
ReadWriteLock.ThreadDisruption |
Error (NOT Exception) thrown when a disruptable thread would create a
deadlock if allowed the request read/write access.
|
RecursiveMap<K> |
A recursive map is a map of maps that point to each other.
|
RefInformation |
A JSON wrapper for the array of PluginRefInformation held by PluginAttributes.
|
ReformatAll |
Quick and dirty utility job for reformatting splunk outputs from the old format into the new format (5-12-2022)
|
ReformatOutput | |
RefValues |
A JSON wrapper for the array of PluginRefValues held by PluginRefInformation.
|
Remediation |
Represents a MySQL longtext field from the remediation lookup table,
that is indexed by a SHA-512 hash
|
RemediationDetails |
Represents a reusable "object lookup", for an object in the list of remediations,
returned from the Nessus API at /scans/<scan-id>
|
ResetDatabase |
A job that resets the database.
|
ReverseMap<K,V> |
A map which reverses the roles of key and value, holding a set
of "keys" as the value for each "value" key.
|
RoundTimestamp |
A static utility for comparing java.sql.Timestamps by rounding to the nearest second.
|
Scan |
Represents a scan object returned by the Nessus API in /scans
|
ScanHistory |
Represents an object from the history array returned by the Nessus API in /scans/<scan-id>
|
ScanHost |
Represents an object from the hosts array returned by the Nessus API in /scans/<scan-id>
|
ScanHostInfo |
Represents the "info" object returned by the Nessus API in /scans/<scan-id>/hosts/<host-id>
|
ScanHostResponse |
Represents a response from the Nessus API at the url path /scans/<scan-id>/hosts/<host-id>,
with details about a specific host that was scanned
|
ScanInfo |
Represents the info object returned by the Nessus API in /scans/<scan-id>
|
ScanJob |
Fetches the details of the scan provided in the constructor, and adds it to the Database.
|
Scanner |
Represents a simple string/varchar lookup from the scanner table
|
ScanOwner |
Represents a simple string/varchar lookup from the scan_owner table
|
ScanPlugin |
Represents the scan-specific fields (host_count, and hosts) in the plugin object from the "plugins"
array returned by the Nessus API in /scans/<scan-id>.
|
ScanPolicy |
Represents a simple string/varchar lookup from the scan_policy table
|
ScanPrioritization |
Represents a prioritization object returned by the Nessus API in /scans/<scan-id>,
which contains the list of plugins.
|
ScanRemediation |
Represents an object from the remediations array returned by the Nessus API in /scans/<scan-id>
|
ScanRemediationsSummary |
Represents the scan-specific fields for the remediations object returned by the
Nessus API in /scans/<scan-id>.
|
ScanResponse |
Represents a response from the Nessus API at the url path /scans/<scan-id>
with details about a specific scan
|
ScanResponse.MultiChild<POJO extends ScanResponse.MultiChild<POJO>> |
The type Multi child.
|
ScanResponse.MultiChildLookup<POJO extends ScanResponse.MultiChildLookup<POJO>> |
The type Multi child lookup.
|
ScanResponse.ScanResponseChild<POJO extends ScanResponse.ScanResponseChild<POJO>> |
The interface Scan response child.
|
ScanResponse.SingleChild<POJO extends ScanResponse.SingleChild<POJO>> |
The type Single child.
|
ScanResponse.SingleChildLookup<POJO extends ScanResponse.SingleChildLookup<POJO>> |
The type Single child lookup.
|
ScanScheduleType |
Represents a simple string/varchar lookup from the scan_schedule_type table
|
ScanStatus |
Represents a simple string/varchar lookup from the scan_status table
|
ScanTargets |
Represents a MySQL longtext field from the scan_targets lookup table,
that is indexed by a SHA-512 hash
|
ScanType |
Represents a simple string/varchar lookup from the scan_type table
|
ScanUuid |
Represents a simple string/varchar lookup from the scan_uuid table
|
SeverityBase |
Represents a reusable "object lookup", for the "severity_base" objects included
in the scan info returned from the Nessus API at /scans/<scan-id>
|
SeverityBaseReducer |
Serializer for simplifying a SeverityBase bean into a single text value, used for
serializing the output.
|
SeverityCount |
JSON container for the array of SeverityLevelCounts in a ScanHost
|
SeverityCountsReducer |
Serializer for simplifying the list of SeverityLevelCount beans into a series of single text values,
used for serializing the output.
|
SeverityLevelCount |
Represents a reusable "object lookup", for the list of objects in the "severitycount" arrays
within the host objects returned from the Nessus API at /scans/<scan-id>
|
SimpleStringLookupDao<POJO extends SimpleStringLookupPojo<POJO>> |
Used for simple string lookups, typically of DB data type varchar(255)
though may be shorter than 255 in some cases.
|
SimpleStringLookupPojo<POJO extends SimpleStringLookupPojo<POJO>> |
Abstract super class for all simple string lookup entities.
|
SplunkOutputMapper |
Custom Jackson object mapper for serializing the outputs to be ingested by splunk.
|
StackTracePrinter |
A debugging utility only (thus the use of println statements...)
for multi-thread concurrency issues.
|
StringHashLookupDao<POJO extends StringHashLookupPojo<POJO>> |
Dao used for string lookups of the longtext db data type,
which cannot be indexed by MySQL.
|
StringHashLookupPojo<POJO extends StringHashLookupPojo<POJO>> |
Abstract super class of all StringHashLookups.
|
StringLookupDao<POJO extends StringLookupPojo> |
The interface for String lookup daos, implemented by both SimpleStringLookupDao
and StringHashLookupDao (which inherits from HashLookupDao).
|
StringLookupPojo<POJO extends StringLookupPojo<POJO>> | |
SummarySerializer<S extends DbPojo,D extends DbPojo> |
Used when outputting records, for serializing the "summary" wrapper objects inside the
HostVulnerabilityOutput entity.
|
SummarySerializer.Summary<S extends DbPojo,D extends DbPojo> |
The interface that must be implemented by the summary wrappers being serialized
|
SyncMultiTypeWrapper |
An intensive test of multi-threading using MultiTypeWrapper as the test subject.
|
TestCRUD |
Tests Create, Read, Update, Delete operations through the Hibernate ORM,
using parameters from provided .json files.
|
TestDeserializationPersistence<R extends NessusResponse> |
Tests the pipeline from deserialization into persistence, and then fetching back out of the
database, to ensure the re-constituted entity matches the originally deserialized entity
https://www.guru99.com/junit-parameterized-test.html#:~:text=What%20is%20Parameterized%20Test%20in,their%20inputs%20and%20expected%20results. |
TestMultiTypeWrapper |
Tests the multi-type wrapper logic
|
TestNessusClient |
Unit test to make sure the Nessus Client works as expected.
|
TestSplunkOutput |
Tests the outputs produced for Splunk, using whatever data is pre-existing in the database
|
Timezone |
Represents a simple string/varchar lookup from the timezone table
|
Truncater | |
Type<T> |
Represents a type that may have type parameters, including
any arbitrary level of nested type parameters
e.g.
|
Url |
Represents a simple string/varchar lookup from the url table
|
Var<T> |
Wraps a value of any type (T).
|
Var.Bool |
Var which wraps a boolean primitive
|
Var.Byte |
Var which wraps a byte primitive
|
Var.Char |
Var which wraps a char primitive
|
Var.Double |
Var which wraps a double primitive
|
Var.Float |
Var which wraps a float primitive
|
Var.Int |
Var which wraps an int primitive
|
Var.Long |
Var which wraps a long primitive
|
Var.Short |
Var which wraps a short primitive
|
Var.String |
Var which wraps a String
|
Vulnerability |
Represents a reusable "object lookup", for the objects in the "vulnerabilities" array
returned from the Nessus API at both /scans/<scan-id> AND /scans/<scan-id>/hosts/<host-d>
|
VulnerabilityScore |
Represents a simple string/varchar lookup from the vulnerability_score table
|
WeakInstancesTracker<K,I> |
A thin wrapper for InstancesTracker, which wraps the key with weak references
to the key.
|
WorkerThread |
The worker thread which runs the jobs provided to the main thread.
|