2024-07-25 02:31:34 +01:00
|
|
|
function Test-GraylogSession {
|
|
|
|
<#
|
|
|
|
.SYNOPSIS
|
|
|
|
Tests the current session to the Graylog server.
|
|
|
|
.DESCRIPTION
|
|
|
|
Tests the current session to the Graylog server to ensure that it is still valid.
|
|
|
|
.PARAMETER SkipSecretCheck
|
|
|
|
An optional switch to skip the check for the required secrets.
|
|
|
|
.PARAMETER SkipSessionCheck
|
|
|
|
An optional switch to skip the check for the session secret.
|
|
|
|
.OUTPUTS
|
|
|
|
True if the session is valid, otherwise false.
|
|
|
|
.EXAMPLE
|
|
|
|
Test-GraylogSession
|
|
|
|
Tests the current session to the Graylog server.
|
|
|
|
.NOTES
|
|
|
|
This function is used to test the current session to the Graylog server to ensure that it is still valid.
|
|
|
|
#>
|
|
|
|
param (
|
|
|
|
[Parameter()]
|
|
|
|
[Switch]
|
|
|
|
$SkipSecretCheck,
|
|
|
|
|
|
|
|
[Parameter()]
|
|
|
|
[Switch]
|
|
|
|
$SkipSessionCheck
|
|
|
|
)
|
|
|
|
|
|
|
|
if (-NOT $SkipSecretCheck) {
|
2024-07-25 02:45:49 +01:00
|
|
|
try { $null = Get-Secret Graylog_BaseURI -Vault Graylog -ErrorAction Stop }
|
2024-07-25 02:31:34 +01:00
|
|
|
catch { Write-Error "The Graylog BaseURI secret is missing, try running Initialize-GraylogServiceVault?"; return $false }
|
2024-07-25 02:45:49 +01:00
|
|
|
try { $null = Get-Secret Graylog_Credential -Vault Graylog -ErrorAction Stop }
|
2024-07-25 02:31:34 +01:00
|
|
|
catch { Write-Error "The Graylog Credential secret is missing, try running Initialize-GraylogServiceVault?"; return $false }
|
2024-07-25 02:45:49 +01:00
|
|
|
try { $null = Get-Secret Graylog_Session -Vault Graylog -ErrorAction Stop }
|
2024-07-25 02:31:34 +01:00
|
|
|
catch { Write-Error "The Graylog Session secret is missing, try running Connect-GraylogService?"; return $false }
|
|
|
|
if ($SkipSessionCheck) { return $true }
|
|
|
|
}
|
|
|
|
|
|
|
|
if (-NOT $SkipSessionCheck) {
|
|
|
|
try { return (Invoke-GraylogRequest GET "/system/sessions").is_valid }
|
|
|
|
catch { return $false }
|
|
|
|
}
|
|
|
|
|
|
|
|
throw "-SkipSecretCheck and -SkipSessionCheck are mutually exclusive."
|
|
|
|
}
|