fix(relay): address auth middleware PR review — DPoP downgrade, htu reconstruction, error propagation, type annotations
Critical fixes:
- Reconstruct htu from config.public_url + request path (reverse proxy safety)
- Enforce DPoP proof required when access token has cnf.jkt binding (downgrade attack)
- Propagate system clock errors as InternalError instead of panicking
- Add AuthenticationRequired/InvalidToken to status_code_mapping test
Important fixes:
- warn on non-UTF-8 DPoP header instead of silently dropping
- Add debug logging on all DPoP validation rejection paths
- warn when audience validation skipped (no server_did configured)
- Add EdDSA algorithm support in dpop_alg_from_str
- validate_dpop now returns descriptive error strings via Result<_, String>
Suggestions:
- Per-item #[allow(dead_code)] instead of module-level allow
- Add AppPass scope test and wrong-audience test
- Add okp/rsa/ec JWK thumbprint tests (including RFC 7638 normative vector)
Fixes: p256 Signature::to_bytes() type annotation ambiguity (as &[u8])
Remove unused ToEncodedPoint import