Skip to content

Commit 20c92b8

Browse files
committed
🔒 Add treblle security headers middleware
1 parent abd3871 commit 20c92b8

File tree

10 files changed

+127
-127
lines changed

10 files changed

+127
-127
lines changed

projects/default-graphql/core/Http/Kernel.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
use App\Http\Middleware\CacheHeaders;
88
use App\Http\Middleware\EnsureEmailIsVerified;
9-
use App\Http\Middleware\JsonApiResponseMiddleware;
9+
use App\Http\Middleware\ContentTypeMiddleware;
1010
use App\Http\Middleware\PreventRequestsDuringMaintenance;
1111
use App\Http\Middleware\TrimStrings;
1212
use App\Http\Middleware\TrustProxies;
@@ -37,7 +37,7 @@ final class Kernel extends HttpKernel
3737

3838
'api' => [
3939
ThrottleRequests::class.':api',
40-
JsonApiResponseMiddleware::class,
40+
ContentTypeMiddleware::class,
4141
CacheHeaders::class,
4242
],
4343
];

projects/default/.env.example

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
APP_NAME=Laravel
1+
APP_NAME="Laravel API Skeleton"
22
APP_ENV=local
33
APP_KEY=
44
APP_DEBUG=true
@@ -11,7 +11,7 @@ LOG_LEVEL=debug
1111
DB_CONNECTION=mysql
1212
DB_HOST=127.0.0.1
1313
DB_PORT=3306
14-
DB_DATABASE=api_boilerplate_laravel
14+
DB_DATABASE=api
1515
DB_USERNAME=root
1616
DB_PASSWORD=
1717

projects/default/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
# Laravel API Skeleton - Default
1+
# Laravel API Skeleton - Example
22
This project is a skeleton for building an API with Laravel. It is the simplest skeleton and contains only the basic packages to build an API.
33

44
## Installation
55

66
```bash
7-
composer require laravelcm/api-skeleton-default
7+
composer require laravelcm/api-skeleton
88
```

projects/default/app/Http/Middleware/JsonApiResponseMiddleware.php renamed to projects/default/app/Http/Middleware/ContentTypeMiddleware.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
use Illuminate\Http\Request;
99
use Symfony\Component\HttpFoundation\Response;
1010

11-
final class JsonApiResponseMiddleware
11+
final class ContentTypeMiddleware
1212
{
1313
public function handle(Request $request, Closure $next): Response
1414
{
@@ -17,10 +17,10 @@ public function handle(Request $request, Closure $next): Response
1717
*/
1818
$response = $next($request);
1919

20-
$response->headers->set(
21-
key: 'Content-Type',
22-
values: 'application/vnd.api+json',
23-
);
20+
$response->headers->add([
21+
'Accept' => 'application/json',
22+
'Content-Type' => 'application/vnd.api+json',
23+
]);
2424

2525
return $response;
2626
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace App\Http\Middleware\Security;
6+
7+
use Closure;
8+
use Illuminate\Http\Request;
9+
use Symfony\Component\HttpFoundation\Response;
10+
11+
final class XFrameOptionMiddleware
12+
{
13+
public function handle(Request $request, Closure $next): Response
14+
{
15+
/**
16+
* @var Response $response
17+
*/
18+
$response = $next($request);
19+
20+
$response->headers->add([
21+
'X-Frame-Options' => 'deny',
22+
]);
23+
24+
return $response;
25+
}
26+
}

projects/default/composer.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@
2020
"laravel/framework": "^10.2",
2121
"laravel/sanctum": "^3.2.1",
2222
"laravel/tinker": "^2.8.1",
23-
"timacdonald/json-api": "v1.0.0-beta.4"
23+
"timacdonald/json-api": "v1.0.0-beta.4",
24+
"treblle/security-headers": "^0.0.3"
2425
},
2526
"require-dev": {
2627
"fakerphp/faker": "^1.21.0",

projects/default/composer.lock

Lines changed: 50 additions & 108 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)