Class OastWorkbenchSession
- Namespace
- Kuestenlogik.Bowire.Security.Scanner
- Assembly
- Kuestenlogik.Bowire.Security.Scanner.dll
The long-lived OAST session behind the manual pen-test panel (#486). One
session per workbench process: the operator generates callback payloads,
pastes them into whatever they're testing by hand, and watches the feed for
the target reaching back — the interactive counterpart to the scanner's
automated --oast-server path.
public sealed class OastWorkbenchSession : IAsyncDisposable
- Inheritance
-
OastWorkbenchSession
- Implements
- Inherited Members
Remarks
Registration is eager on the first payload, not deferred to the first poll: the interaction server drops callbacks for a correlation id it has not seen registered, so a payload handed out before registration would silently lose any callback it caught. All payloads share one correlation id, so one poll drains every probe's callbacks.
Configured from Bowire:Oast:Server / Bowire:Oast:Token. With no
server set, Configured is false and the panel shows how to
enable it rather than pretending to work.
Constructors
OastWorkbenchSession(string?, string?)
Create the session from the configured server + token (either may be null).
public OastWorkbenchSession(string? server, string? token)
Parameters
Properties
ConfigError
Reason the configured server URL was rejected, or null.
public string? ConfigError { get; }
Property Value
Configured
Whether an interaction server is configured and usable.
public bool Configured { get; }
Property Value
ServerDomain
The interaction-server domain callbacks are addressed under, or null.
public string? ServerDomain { get; }
Property Value
Methods
AllocateAsync(CancellationToken)
Hand out a fresh callback host to plant. Registers the session first if needed. Throws InvalidOperationException when no server is configured — the endpoint maps that to a clear 409, not a 500.
public Task<string> AllocateAsync(CancellationToken ct = default)
Parameters
Returns
DisposeAsync()
public ValueTask DisposeAsync()
Returns
PollAsync(CancellationToken)
The full accumulated feed after draining any new callbacks from the server. Returns the whole feed (not just the delta) so the panel can poll at its own cadence and always render the complete history. Empty when no server is configured.
public Task<IReadOnlyList<OastCallback>> PollAsync(CancellationToken ct = default)