@Catch(ForbiddenException, UnauthorizedException)
export class AuthExceptionFilter implements ExceptionFilter {
catch(exception: ForbiddenException | UnauthorizedException, host: ArgumentsHost) {
this.auditLog.logSecurityViolation({
requestId: randomUUID(),
userId: request.user?.auth0Id || 'anonymous',
action: `${request.method} ${request.path}`,
reason: exception.message,
});
response.status(status).json({
error: {
code: status === 401 ? 'ERROR_UNAUTHORIZED' : 'ERROR_FORBIDDEN',
message: 'You do not have permission to access this resource',
timestamp: new Date().toISOString(),
requestId,
},
});
}
}