Documentation ¶
Overview ¶
Package java contains components for interrogating java packages in container layers.
Index ¶
- Constants
- Variables
- func NewEcosystem(ctx context.Context) *indexer.Ecosystem
- type Matcher
- type Scanner
- func (s *Scanner) Configure(ctx context.Context, f indexer.ConfigDeserializer, c *http.Client) error
- func (Scanner) DefaultRepository(ctx context.Context) *claircore.Repository
- func (*Scanner) Kind() string
- func (*Scanner) Name() string
- func (s *Scanner) Scan(ctx context.Context, layer *claircore.Layer) ([]*claircore.Package, error)
- func (*Scanner) Version() string
- type ScannerConfig
- Bugs
Constants ¶
const DefaultRequestTimeout = 2 * time.Second
const DefaultSearchAPI = `https://search.maven.org/solrsearch/select`
DefaultSearchAPI is a maven-like REST API that may be used to do reverse lookups based on an archive's sha1 sum.
Variables ¶
var (
Repository = claircore.Repository{
Name: "maven",
URI: "https://repo1.maven.apache.org/maven2",
}
)
Functions ¶
Types ¶
type Matcher ¶ added in v1.5.4
type Matcher struct{}
Matcher matches discovered Java Maven packages against advisories provided via OSV.
func (*Matcher) Query ¶ added in v1.5.4
func (*Matcher) Query() []driver.MatchConstraint
Query implements driver.Matcher.
func (*Matcher) Vulnerable ¶ added in v1.5.4
func (*Matcher) Vulnerable(ctx context.Context, record *claircore.IndexRecord, vuln *claircore.Vulnerability) (bool, error)
type Scanner ¶
type Scanner struct {
// contains filtered or unexported fields
}
Scanner implements the scanner.PackageScanner interface.
It looks for files that seem like jar, war or ear, and looks at the metadata recorded there.
The zero value is ready to use.
func (*Scanner) Configure ¶ added in v1.1.0
func (s *Scanner) Configure(ctx context.Context, f indexer.ConfigDeserializer, c *http.Client) error
Configure implements indexer.RPCScanner.
func (Scanner) DefaultRepository ¶ added in v1.5.21
func (Scanner) DefaultRepository(ctx context.Context) *claircore.Repository
DefaultRepository implements indexer.DefaultRepoScanner.
type ScannerConfig ¶ added in v1.1.0
type ScannerConfig struct { // DisableAPI disables the use of the API. DisableAPI bool `yaml:"disable_api" json:"disable_api"` // API is a URL endpoint to a maven-like REST API. // The default is DefaultSearchAPI. API string `yaml:"api" json:"api"` APIRequestTimeout time.Duration `yaml:"api_request_timeout" json:"api_request_timeout"` }
ScannerConfig is the struct used to configure a Scanner.
Notes ¶
Bugs ¶
There's no way for a scanner that makes RPC calls to signal "the call failed, these are best-effort results, and please retry."
There's probably some bugs lurking in the jar.Info → claircore.Package mapping code around embedded jars. There's a testcase to be written, there.