Add tests and implement StubBearer authentication for Signer endpoints
- Created SignerEndpointsTests to validate the SignDsse and VerifyReferrers endpoints. - Implemented StubBearerAuthenticationDefaults and StubBearerAuthenticationHandler for token-based authentication. - Developed ConcelierExporterClient for managing Trivy DB settings and export operations. - Added TrivyDbSettingsPageComponent for UI interactions with Trivy DB settings, including form handling and export triggering. - Implemented styles and HTML structure for Trivy DB settings page. - Created NotifySmokeCheck tool for validating Redis event streams and Notify deliveries.
This commit is contained in:
@@ -78,14 +78,22 @@ public static class ScannerWebServiceOptionsValidator
|
||||
throw new InvalidOperationException("API reportsSegment must be configured.");
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(options.Api.PolicySegment))
|
||||
{
|
||||
throw new InvalidOperationException("API policySegment must be configured.");
|
||||
}
|
||||
|
||||
options.Events ??= new ScannerWebServiceOptions.EventsOptions();
|
||||
ValidateEvents(options.Events);
|
||||
}
|
||||
if (string.IsNullOrWhiteSpace(options.Api.PolicySegment))
|
||||
{
|
||||
throw new InvalidOperationException("API policySegment must be configured.");
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(options.Api.RuntimeSegment))
|
||||
{
|
||||
throw new InvalidOperationException("API runtimeSegment must be configured.");
|
||||
}
|
||||
|
||||
options.Events ??= new ScannerWebServiceOptions.EventsOptions();
|
||||
ValidateEvents(options.Events);
|
||||
|
||||
options.Runtime ??= new ScannerWebServiceOptions.RuntimeOptions();
|
||||
ValidateRuntime(options.Runtime);
|
||||
}
|
||||
|
||||
private static void ValidateStorage(ScannerWebServiceOptions.StorageOptions storage)
|
||||
{
|
||||
@@ -199,7 +207,7 @@ public static class ScannerWebServiceOptionsValidator
|
||||
}
|
||||
}
|
||||
|
||||
private static void ValidateTelemetry(ScannerWebServiceOptions.TelemetryOptions telemetry)
|
||||
private static void ValidateTelemetry(ScannerWebServiceOptions.TelemetryOptions telemetry)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(telemetry.MinimumLogLevel))
|
||||
{
|
||||
@@ -231,9 +239,9 @@ public static class ScannerWebServiceOptionsValidator
|
||||
throw new InvalidOperationException("Telemetry OTLP header keys must be non-empty.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void ValidateAuthority(ScannerWebServiceOptions.AuthorityOptions authority)
|
||||
}
|
||||
|
||||
private static void ValidateAuthority(ScannerWebServiceOptions.AuthorityOptions authority)
|
||||
{
|
||||
authority.Resilience ??= new ScannerWebServiceOptions.AuthorityOptions.ResilienceOptions();
|
||||
NormalizeList(authority.Audiences, toLower: false);
|
||||
@@ -384,5 +392,48 @@ public static class ScannerWebServiceOptionsValidator
|
||||
{
|
||||
throw new InvalidOperationException("Authority resilience offlineCacheTolerance must be greater than or equal to zero.");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void ValidateRuntime(ScannerWebServiceOptions.RuntimeOptions runtime)
|
||||
{
|
||||
if (runtime.MaxBatchSize <= 0)
|
||||
{
|
||||
throw new InvalidOperationException("Runtime maxBatchSize must be greater than zero.");
|
||||
}
|
||||
|
||||
if (runtime.MaxPayloadBytes <= 0)
|
||||
{
|
||||
throw new InvalidOperationException("Runtime maxPayloadBytes must be greater than zero.");
|
||||
}
|
||||
|
||||
if (runtime.EventTtlDays <= 0)
|
||||
{
|
||||
throw new InvalidOperationException("Runtime eventTtlDays must be greater than zero.");
|
||||
}
|
||||
|
||||
if (runtime.PerNodeEventsPerSecond <= 0)
|
||||
{
|
||||
throw new InvalidOperationException("Runtime perNodeEventsPerSecond must be greater than zero.");
|
||||
}
|
||||
|
||||
if (runtime.PerNodeBurst <= 0)
|
||||
{
|
||||
throw new InvalidOperationException("Runtime perNodeBurst must be greater than zero.");
|
||||
}
|
||||
|
||||
if (runtime.PerTenantEventsPerSecond <= 0)
|
||||
{
|
||||
throw new InvalidOperationException("Runtime perTenantEventsPerSecond must be greater than zero.");
|
||||
}
|
||||
|
||||
if (runtime.PerTenantBurst <= 0)
|
||||
{
|
||||
throw new InvalidOperationException("Runtime perTenantBurst must be greater than zero.");
|
||||
}
|
||||
|
||||
if (runtime.PolicyCacheTtlSeconds <= 0)
|
||||
{
|
||||
throw new InvalidOperationException("Runtime policyCacheTtlSeconds must be greater than zero.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user