Merge pull request 'capture: catch-all logging for squad-invite RE (unrouted + social)' (#17) from preprod into main
Build & Deploy / build (push) Successful in 38s
Build & Deploy / build (push) Successful in 38s
This commit was merged in pull request #17.
This commit is contained in:
@@ -9,6 +9,14 @@ public class RequestLoggerMiddleware
|
||||
private readonly ILogger<RequestLoggerMiddleware> _logger;
|
||||
private readonly RequestDelegate _next;
|
||||
|
||||
// Keywords used to surface social/squad/invite traffic while reverse-engineering the
|
||||
// squad-invite flow (see SQUAD-EMULATION.md). Matched against the path AND the body
|
||||
// (the CloudScript function name lives in the body of /Client/ExecuteFunction).
|
||||
private static readonly string[] SocialKeywords =
|
||||
{
|
||||
"group", "party", "lobby", "squad", "invite", "friend", "social", "matchmak",
|
||||
};
|
||||
|
||||
public RequestLoggerMiddleware(ILogger<RequestLoggerMiddleware> logger, RequestDelegate next)
|
||||
{
|
||||
_logger = logger;
|
||||
@@ -32,6 +40,27 @@ public class RequestLoggerMiddleware
|
||||
}
|
||||
|
||||
await _next(context);
|
||||
|
||||
// ── Capture pass (squad-invite RE, see SQUAD-EMULATION.md) ──────────────
|
||||
// Runs AFTER the pipeline so we know whether the request was actually routed.
|
||||
if (context.Request.Method == "POST")
|
||||
{
|
||||
var path = context.Request.Path.Value ?? "";
|
||||
var haystack = (path + " " + body).ToLowerInvariant();
|
||||
|
||||
// Any POST that fell through to a 404 = an endpoint the emulator does NOT implement
|
||||
// (e.g. a native PlayFab /Group/CreateGroup or /Lobby/* the client tried to call).
|
||||
if (context.Response.StatusCode == 404)
|
||||
{
|
||||
_logger.LogWarning("[CAPTURE UNROUTED] {Method} {Url} -> 404 | Body {Body}",
|
||||
context.Request.Method, context.Request.GetDisplayUrl(), body);
|
||||
}
|
||||
else if (SocialKeywords.Any(k => haystack.Contains(k)))
|
||||
{
|
||||
_logger.LogInformation("[CAPTURE SOCIAL] {Url} ({Status}) | Body {Body}",
|
||||
context.Request.GetDisplayUrl(), context.Response.StatusCode, body);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static async Task<string> RequestAsync(HttpRequest request)
|
||||
|
||||
Reference in New Issue
Block a user