Skip to content

Commit c3fcb1a

Browse files
committed
Allow custom table prefix
1 parent ff14fe0 commit c3fcb1a

File tree

5 files changed

+19
-5
lines changed

5 files changed

+19
-5
lines changed

docs/index.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,9 @@ For implementation into Symfony projects, please see [bundle documentation](basi
9797
9898
# Name of the entity manager that you wish to use for managing clients and tokens.
9999
entity_manager: default
100+
101+
# Table name prefix.
102+
table_prefix: oauth2_
100103
in_memory: ~
101104
102105
# Set a custom prefix that replaces the default 'ROLE_OAUTH2_' role prefix

src/DependencyInjection/Configuration.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,11 @@ private function createPersistenceNode(): NodeDefinition
184184
->cannotBeEmpty()
185185
->defaultValue('default')
186186
->end()
187+
->scalarNode('table_prefix')
188+
->info('Table name prefix.')
189+
->cannotBeEmpty()
190+
->defaultValue('oauth2_')
191+
->end()
187192
->end()
188193
->end()
189194
// In-memory persistence

src/DependencyInjection/LeagueOAuth2ServerExtension.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -280,6 +280,7 @@ private function configureDoctrinePersistence(ContainerBuilder $container, array
280280
->findDefinition(Driver::class)
281281
->replaceArgument(0, $config['client']['classname'])
282282
->replaceArgument(1, $config['authorization_server']['persist_access_token'])
283+
->replaceArgument(2, $persistenceConfig['table_prefix'])
283284
;
284285

285286
$container->setParameter('league.oauth2_server.persistence.doctrine.enabled', true);

src/Persistence/Mapping/Driver.php

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,14 @@ class Driver implements MappingDriver
2828
/** @var bool */
2929
private $persistAccessToken;
3030

31-
public function __construct(string $clientClass, bool $persistAccessToken)
31+
/** @var string */
32+
private $tablePrefix;
33+
34+
public function __construct(string $clientClass, bool $persistAccessToken, string $tablePrefix = 'oauth2_')
3235
{
3336
$this->clientClass = $clientClass;
3437
$this->persistAccessToken = $persistAccessToken;
38+
$this->tablePrefix = $tablePrefix;
3539
}
3640

3741
public function loadMetadataForClass($className, ClassMetadata $metadata): void
@@ -97,7 +101,7 @@ private function buildAbstractClientMetadata(ClassMetadata $metadata): void
97101
private function buildAccessTokenMetadata(ClassMetadata $metadata): void
98102
{
99103
(new ClassMetadataBuilder($metadata))
100-
->setTable('oauth2_access_token')
104+
->setTable($this->tablePrefix . 'access_token')
101105
->createField('identifier', 'string')->makePrimaryKey()->length(80)->option('fixed', true)->build()
102106
->addField('expiry', 'datetime_immutable')
103107
->createField('userIdentifier', 'string')->length(128)->nullable(true)->build()
@@ -110,7 +114,7 @@ private function buildAccessTokenMetadata(ClassMetadata $metadata): void
110114
private function buildAuthorizationCodeMetadata(ClassMetadata $metadata): void
111115
{
112116
(new ClassMetadataBuilder($metadata))
113-
->setTable('oauth2_authorization_code')
117+
->setTable($this->tablePrefix . 'authorization_code')
114118
->createField('identifier', 'string')->makePrimaryKey()->length(80)->option('fixed', true)->build()
115119
->addField('expiry', 'datetime_immutable')
116120
->createField('userIdentifier', 'string')->length(128)->nullable(true)->build()
@@ -123,15 +127,15 @@ private function buildAuthorizationCodeMetadata(ClassMetadata $metadata): void
123127
private function buildClientMetadata(ClassMetadata $metadata): void
124128
{
125129
(new ClassMetadataBuilder($metadata))
126-
->setTable('oauth2_client')
130+
->setTable($this->tablePrefix . 'client')
127131
->createField('identifier', 'string')->makePrimaryKey()->length(32)->build()
128132
;
129133
}
130134

131135
private function buildRefreshTokenMetadata(ClassMetadata $metadata): void
132136
{
133137
$classMetadataBuilder = (new ClassMetadataBuilder($metadata))
134-
->setTable('oauth2_refresh_token')
138+
->setTable($this->tablePrefix . 'refresh_token')
135139
->createField('identifier', 'string')->makePrimaryKey()->length(80)->option('fixed', true)->build()
136140
->addField('expiry', 'datetime_immutable')
137141
->addField('revoked', 'boolean')

src/Resources/config/storage/doctrine.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
->args([
2626
null,
2727
null,
28+
null,
2829
])
2930
->alias(Driver::class, 'league.oauth2_server.persistence.driver')
3031

0 commit comments

Comments
 (0)