Skip to content

Commit 4f85f55

Browse files
Apply suggestion from @coderabbitai[bot]
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
1 parent 1e4e5e4 commit 4f85f55

File tree

1 file changed

+15
-16
lines changed

1 file changed

+15
-16
lines changed

lib/security/api-wrapper.ts

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -16,23 +16,22 @@ export interface APIHandler {
1616
*/
1717
export function withSecurity(handler: APIHandler) {
1818
return async (request: NextRequest): Promise<Response> => {
19-
const requestId = crypto.randomUUID();
20-
21-
try {
22-
// Add request ID to headers for tracking
23-
const response = await handler(request);
24-
25-
// Add security headers
26-
response.headers.set('X-Request-ID', requestId);
27-
response.headers.set('X-Content-Type-Options', 'nosniff');
28-
response.headers.set('X-Frame-Options', 'DENY');
29-
response.headers.set('X-XSS-Protection', '1; mode=block');
30-
31-
// Add CSP header
19+
} catch (error) {
20+
const res = ErrorSanitizer.createErrorResponse(
21+
error,
22+
500,
23+
'api-wrapper-catch',
24+
requestId
25+
);
26+
// Ensure error responses also include security headers/CSP
27+
res.headers.set('X-Request-ID', requestId);
28+
res.headers.set('X-Content-Type-Options', 'nosniff');
29+
res.headers.set('X-Frame-Options', 'DENY');
30+
res.headers.set('X-XSS-Protection', '1; mode=block');
3231
const cspConfig = getCSPConfig(request);
33-
response.headers.set('Content-Security-Policy', cspConfig.policy);
34-
35-
return response;
32+
res.headers.set('Content-Security-Policy', cspConfig.policy);
33+
return res;
34+
}
3635
} catch (error) {
3736
return ErrorSanitizer.createErrorResponse(
3837
error,

0 commit comments

Comments
 (0)