Add mercure auth cookie

This commit is contained in:
Alejandro Celaya committed 2026-10-11 10:09:08 +02:00
1 parent d6239aa5ba
commit 445ffb18dd
7 files changed
+12 -6

No files matched your search

+1 -1
View File
@@ -42,7 +42,7 @@
"pagerfanta/core": "^3.8",
"ramsey/uuid": "^4.9",
"shlinkio/doctrine-specification": "^2.3",
"shlinkio/shlink-common": "dev-main#078faf1 as 9.1.0",
"shlinkio/shlink-common": "dev-main#349d779 as 9.1.0",
"shlinkio/shlink-config": "^4.1.0",
"shlinkio/shlink-event-dispatcher": "^4.4.0",
"shlinkio/shlink-importer": "^5.8",
+1
View File
@@ -17,6 +17,7 @@ return [
'jwt_secret' => EnvVars::MERCURE_JWT_SECRET->loadFromEnv(),
'jwt_issuer' => 'Shlink',
'version' => EnvVars::MERCURE_VERSION->loadFromEnv(),
'auth_cookie_name' => EnvVars::MERCURE_AUTH_COOKIE_NAME->loadFromEnv(),
],
'dependencies' => [
+2 -1
View File
@@ -64,7 +64,8 @@ return [
EnvVars::MERCURE_PUBLIC_HUB_URL->value => 'http://localhost:8002',
EnvVars::MERCURE_INTERNAL_HUB_URL->value => 'http://shlink_mercure_proxy',
EnvVars::MERCURE_JWT_SECRET->value => 'mercure_jwt_key_long_enough_to_avoid_error',
EnvVars::MERCURE_VERSION->value => 'v1',
EnvVars::MERCURE_VERSION->value => 'stable',
EnvVars::MERCURE_AUTH_COOKIE_NAME->value => 'mercure_access_token',
// RabbitMQ
EnvVars::RABBITMQ_ENABLED->value => true,
+3 -1
View File
@@ -186,7 +186,9 @@ services:
MERCURE_PUBLISHER_JWT_KEY: mercure_jwt_key_long_enough_to_avoid_error
MERCURE_SUBSCRIBER_JWT_KEY: mercure_jwt_key_long_enough_to_avoid_error
MERCURE_TRUSTED_ISSUERS: Shlink # Value of the JWT iss claim
MERCURE_EXTRA_DIRECTIVES: "cors_origins https://app.shlink.io http://localhost:3000 http://127.0.0.1:3000 http://localhost:3002 http://127.0.0.1:3002 http://localhost:3005 http://127.0.0.1:3005"
MERCURE_EXTRA_DIRECTIVES: |
cookie_name mercure_access_token
cors_origins https://app.shlink.io http://localhost:3000 http://127.0.0.1:3000 http://localhost:3002 http://127.0.0.1:3002 http://localhost:3005 http://127.0.0.1:3005
shlink_mercure_0:
container_name: shlink_mercure_0
+2 -1
View File
@@ -43,6 +43,7 @@ enum EnvVars: string
case MERCURE_INTERNAL_HUB_URL = 'MERCURE_INTERNAL_HUB_URL';
case MERCURE_JWT_SECRET = 'MERCURE_JWT_SECRET';
case MERCURE_VERSION = 'MERCURE_VERSION';
case MERCURE_AUTH_COOKIE_NAME = 'MERCURE_AUTH_COOKIE_NAME';
case RABBITMQ_ENABLED = 'RABBITMQ_ENABLED';
case RABBITMQ_HOST = 'RABBITMQ_HOST';
case RABBITMQ_PORT = 'RABBITMQ_PORT';
@@ -136,7 +137,7 @@ enum EnvVars: string
},
self::DB_USE_ENCRYPTION => false,
self::MERCURE_ENABLED => self::MERCURE_PUBLIC_HUB_URL->existsInEnv(),
self::MERCURE_VERSION => MercureVersion::v0->value,
self::MERCURE_VERSION => MercureVersion::LEGACY->value,
self::MERCURE_INTERNAL_HUB_URL => self::MERCURE_PUBLIC_HUB_URL->loadFromEnv(),
self::RABBITMQ_ENABLED, self::RABBITMQ_USE_SSL => false,
self::RABBITMQ_PORT => 5672,
@@ -40,6 +40,7 @@ class MercureInfoAction extends AbstractRestAction
'token' => $jwt,
'jwtExpiration' => $expiresAt->toAtomString(),
'version' => $this->mercureOptions->version->value,
'authCookieName' => $this->mercureOptions->authCookieName,
]);
}
}
@@ -40,8 +40,8 @@ class MercureInfoActionTest extends TestCase
}
#[Test]
#[TestWith([MercureVersion::v0])]
#[TestWith([MercureVersion::v1])]
#[TestWith([MercureVersion::LEGACY])]
#[TestWith([MercureVersion::STABLE])]
public function returnsExpectedInfoWhenEverythingIsOk(MercureVersion $version): void
{
$this->provider->expects($this->once())->method('buildSubscriptionToken')->willReturn('abc.123');