Skip to content

Commit 9d6af2d

Browse files
authored
Merge pull request #64 from BedrockStreaming/feat/allow-sf6
2 parents 494646f + 0ebd893 commit 9d6af2d

7 files changed

Lines changed: 58 additions & 35 deletions

File tree

.github/workflows/ci.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,9 @@ jobs:
1818
runs-on: ubuntu-18.04
1919
strategy:
2020
matrix:
21-
version: ['7.1', 7.2', '7.3', '7.4', '8.0']
21+
version: ['7.1', '7.2', '7.3', '7.4', '8.0', '8.1']
2222
flags: ['', '--prefer-lowest']
23+
fail-fast: false
2324
steps:
2425
- uses: actions/checkout@master
2526
- uses: shivammathur/setup-php@v2

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# LogBridgeBundle [![Build Status](https://travis-ci.org/M6Web/LogBridgeBundle.svg?branch=master)](https://travis-ci.org/M6Web/LogBridgeBundle)
1+
# LogBridgeBundle [![Build Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2FBedrockStreaming%2FLogBridgeBundle%2Fbadge%3Fref%3Dmaster&style=flat)](https://actions-badge.atrox.dev/BedrockStreaming/LogBridgeBundle/goto?ref=master)
22

33
Symfony Bundle to log Request/Response with Monolog.
44

composer.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,18 @@
99
"prefer-stable": true,
1010
"require": {
1111
"php": ">=7.1.3",
12-
"symfony/config": "^4.4|^5.0",
13-
"symfony/yaml": "^4.4|^5.0",
14-
"symfony/routing": "^4.4|^5.0",
15-
"symfony/expression-language": "^4.4|^5.0",
16-
"symfony/security-core": "^4.4|^5.0"
12+
"symfony/config": "^4.4|^5.0|^6.0",
13+
"symfony/yaml": "^4.4|^5.0|^6.0",
14+
"symfony/routing": "^4.4|^5.0|^6.0",
15+
"symfony/expression-language": "^4.4|^5.0|^6.0",
16+
"symfony/security-core": "^4.4|^5.0|^6.0"
1717
},
1818
"require-dev": {
1919
"atoum/atoum": "^3.4|^4.0",
2020
"friendsofphp/php-cs-fixer": "^2.19",
2121
"m6web/symfony2-coding-standard": "~1.2",
2222
"m6web/php-cs-fixer-config": "^1.0",
23-
"symfony/http-foundation": "^4.4|^5.0"
23+
"symfony/http-foundation": "^4.4|^5.0|^6.0"
2424
},
2525
"extra": {
2626
"branch-alias": {

src/M6Web/Bundle/LogBridgeBundle/Formatter/DefaultFormatter.php

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -149,11 +149,16 @@ public function getLogContext(Request $request, Response $response, array $optio
149149
*/
150150
protected function getUsername()
151151
{
152-
if ($this->tokenStorage && $this->tokenStorage->getToken()) {
153-
return $this->tokenStorage->getToken()->getUsername();
152+
if (!$this->tokenStorage || !$token = $this->tokenStorage->getToken()) {
153+
return '';
154154
}
155155

156-
return '';
156+
// compatibility Symfony < 6
157+
if (method_exists('Symfony\Component\Security\Core\Authentication\Token\TokenInterface', 'getUsername')) {
158+
return $token->getUsername();
159+
}
160+
161+
return $token->getUserIdentifier();
157162
}
158163

159164
/**

src/M6Web/Bundle/LogBridgeBundle/Tests/Units/BaseTest.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use atoum;
66
use Symfony\Component\Routing\RequestContext;
7+
use Symfony\Component\Routing\Route;
78

89
/**
910
* Base Class Unit test
@@ -14,7 +15,7 @@ protected function getMockedRouterCollection()
1415
{
1516
$collection = new \mock\Symfony\Component\Routing\RouteCollection();
1617
$collection->getMockController()->get = function($name) {
17-
return $name != 'invalid_route' ? true : false;
18+
return $name != 'invalid_route' ? new Route('/path') : null;
1819
};
1920

2021
return $collection;

src/M6Web/Bundle/LogBridgeBundle/Tests/Units/Formatter/DefaultFormatter.php

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace M6Web\Bundle\LogBridgeBundle\Tests\Units\Formatter;
44

55
use atoum;
6+
use Symfony\Component\Security\Core\User\InMemoryUser;
67
use Symfony\Component\Security\Core\User\User;
78
use M6Web\Bundle\LogBridgeBundle\Formatter;
89
use Symfony\Component\HttpFoundation\Request;
@@ -14,21 +15,30 @@
1415
class DefaultFormatter extends atoum
1516
{
1617
const ENVIRONMENT = 'test';
18+
const USERNAME = 'test-username';
19+
const PASSWORD = 'test-password';
1720

1821
private function getUser()
1922
{
20-
return new User('test', 'password');
23+
if (class_exists(User::class)) {
24+
return new User(self::USERNAME, self::PASSWORD);
25+
}
26+
27+
return new InMemoryUser(self::USERNAME, self::PASSWORD);
2128
}
2229

23-
private function getMockedToken(User $user = null)
30+
private function getMockedToken()
2431
{
25-
$user = $user ?: $this->getUser();
26-
$token = new \mock\Symfony\Component\Security\Core\Authentication\TokenInterface();
32+
$usernameMethod = 'getUserIdentifier';
33+
if (method_exists('Symfony\Component\Security\Core\Authentication\Token\TokenInterface', 'getUsername')) {
34+
// compatibility Symfony < 6
35+
$usernameMethod = 'getUsername';
36+
}
2737

28-
$token->getMockController()->getUsername = $user->getUsername();
29-
$token->getMockController()->getUser = $user;
30-
$token->getMockController()->__toString = $user->getUsername();
31-
$token->getMockController()->getCredentials = 'test';
38+
$token = new \mock\Symfony\Component\Security\Core\Authentication\Token\TokenInterface();
39+
$token->getMockController()->$usernameMethod = self::USERNAME;
40+
$token->getMockController()->getUser = $this->getUser();
41+
$token->getMockController()->__toString = self::USERNAME;
3242

3343
return $token;
3444
}
@@ -85,7 +95,7 @@ public function testProvider()
8595
->integer($logContext['status'])
8696
->isEqualTo($status)
8797
->string($logContext['user'])
88-
->isEqualTo($tokenstorage->getToken()->getUsername())
98+
->isEqualTo(self::USERNAME)
8999
->string($logContext['key'])
90100
->isEqualTo(sprintf('%s.%s.%s.%s', self::ENVIRONMENT, $route, $method, $status))
91101
;
@@ -104,14 +114,10 @@ public function testPostProvider()
104114
];
105115

106116

107-
$request = new \mock\Symfony\Component\HttpFoundation\Request([], $post);
108-
$request->getMockController()->getMethod = 'POST';
117+
$request = new Request([], $post, [], [], [], ['REQUEST_METHOD' => 'POST']);
109118

110119
$response = new Response('Body content response');
111120
$tokenstorage = $this->getMockedTokenStorage();
112-
$route = $request->get('_route');
113-
$method = $request->getMethod();
114-
$status = $response->getStatusCode();
115121

116122
$this
117123
->if($provider = $this->createProvider())

src/M6Web/Bundle/LogBridgeBundle/Tests/Units/Formatter/ExceptionFormatter.php

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace M6Web\Bundle\LogBridgeBundle\Tests\Units\Formatter;
44

55
use atoum;
6+
use Symfony\Component\Security\Core\User\InMemoryUser;
67
use Symfony\Component\Security\Core\User\User;
78
use M6Web\Bundle\LogBridgeBundle\Formatter;
89
use Symfony\Component\HttpFoundation\Request;
@@ -14,6 +15,8 @@
1415
class ExceptionFormatter extends atoum
1516
{
1617
const ENVIRONMENT = 'test';
18+
const USERNAME = 'test-username';
19+
const PASSWORD = 'test-password';
1720

1821
/**
1922
* @var string
@@ -30,18 +33,25 @@ public function beforeTestMethod($method)
3033

3134
private function getUser()
3235
{
33-
return new User('test', 'password');
36+
if (class_exists(User::class)) {
37+
return new User(self::USERNAME, self::PASSWORD);
38+
}
39+
40+
return new InMemoryUser(self::USERNAME, self::PASSWORD);
3441
}
3542

36-
private function getMockedToken(User $user = null)
43+
private function getMockedToken()
3744
{
38-
$user = $user ?: $this->getUser();
39-
$token = new \mock\Symfony\Component\Security\Core\Authentication\TokenInterface();
45+
$usernameMethod = 'getUserIdentifier';
46+
if (method_exists('Symfony\Component\Security\Core\Authentication\Token\TokenInterface', 'getUsername')) {
47+
// compatibility Symfony < 6
48+
$usernameMethod = 'getUsername';
49+
}
4050

41-
$token->getMockController()->getUsername = $user->getUsername();
42-
$token->getMockController()->getUser = $user;
43-
$token->getMockController()->__toString = $user->getUsername();
44-
$token->getMockController()->getCredentials = 'test';
51+
$token = new \mock\Symfony\Component\Security\Core\Authentication\Token\TokenInterface();
52+
$token->getMockController()->$usernameMethod = self::USERNAME;
53+
$token->getMockController()->getUser = $this->getUser();
54+
$token->getMockController()->__toString = self::USERNAME;
4555

4656
return $token;
4757
}
@@ -111,7 +121,7 @@ public function testProvider()
111121
->integer($logContext['status'])
112122
->isEqualTo($status)
113123
->string($logContext['user'])
114-
->isEqualTo($tokenstorage->getToken()->getUsername())
124+
->isEqualTo(self::USERNAME)
115125
->string($logContext['key'])
116126
->isEqualTo(sprintf('%s.%s.%s.%s', self::ENVIRONMENT, $route, $method, $status))
117127
;

0 commit comments

Comments
 (0)