diff --git a/extensions/ter_fe2/Classes/Validation/Validator/TokenCreationValidator.php b/extensions/ter_fe2/Classes/Validation/Validator/TokenCreationValidator.php index b77df3b9e4b36f1e1662a47f44be68ba7e399ee9..59a011b00e9331dd9ec05eba6e889d7fd427a653 100644 --- a/extensions/ter_fe2/Classes/Validation/Validator/TokenCreationValidator.php +++ b/extensions/ter_fe2/Classes/Validation/Validator/TokenCreationValidator.php @@ -76,11 +76,7 @@ class TokenCreationValidator extends AbstractValidator if ($value->getExtensions() !== []) { foreach ($value->getExtensions() as $extension) { - $length = strlen(trim($extension)); - if ($length < 3 - || $length > 30 - || !(bool)preg_match('/^((?!(tx|user|pages|tt|sys|ts_language|csh))[a-z]{1}[a-z0-9_]+)$/', $extension) - ) { + if (!(bool)preg_match('/^[a-z][a-z0-9_]{2,29}$/', $extension)) { $this->addError($extension . ' is no valid extension key', 1605034751); return false; } diff --git a/extensions/ter_fe2/Tests/Unit/Validation/TokenCreatingValidatorTest.php b/extensions/ter_fe2/Tests/Unit/Validation/TokenCreatingValidatorTest.php index 1499906802173560d1d281fffd5871c23b93df1a..a2257da25ab81fa0ac3848e47d9024ec0bca7305 100644 --- a/extensions/ter_fe2/Tests/Unit/Validation/TokenCreatingValidatorTest.php +++ b/extensions/ter_fe2/Tests/Unit/Validation/TokenCreatingValidatorTest.php @@ -111,7 +111,7 @@ class TokenCreatingValidatorTest extends AbstractTestCase 1605034751 ]; yield 'Invalid extension name 2' => [ - ['password', '', null, [], ['valid_ext', 'tx_ext']], + ['password', '', null, [], ['valid_ext', '_ext']], 1605034751 ]; yield 'Invalid extension name 3' => [ diff --git a/extensions/ter_rest/Resources/Private/Schema/v1.json b/extensions/ter_rest/Resources/Private/Schema/v1.json index 1cd9177411895efa5529f0c7299e92104989ce8b..01730ae7aaf563e4cb806cb3e61035c0fb1392af 100644 --- a/extensions/ter_rest/Resources/Private/Schema/v1.json +++ b/extensions/ter_rest/Resources/Private/Schema/v1.json @@ -228,7 +228,7 @@ "items": { "maxLength": 30, "minLength": 3, - "pattern": "^((?!(tx|user|pages|tt|sys|ts_language|csh))[a-z]{1}[a-z0-9_]+)$", + "pattern": "^((?!(tx|user|pages|tt|sys|ts_language|csh))[a-z][a-z0-9_]+)$", "type": "string" } }, @@ -837,7 +837,7 @@ "schema": { "maxLength": 30, "minLength": 3, - "pattern": "^[a-z]{1}[a-z0-9_]+$", + "pattern": "^[a-z][a-z0-9_]+$", "type": "string" }, "example": "my_typo3_extension" @@ -965,7 +965,7 @@ "schema": { "maxLength": 30, "minLength": 3, - "pattern": "^[a-z]{1}[a-z0-9_]+$", + "pattern": "^[a-z][a-z0-9_]+$", "type": "string" }, "example": "my_typo3_extension" @@ -1097,7 +1097,7 @@ "schema": { "maxLength": 30, "minLength": 3, - "pattern": "^[a-z]{1}[a-z0-9_]+$", + "pattern": "^[a-z][a-z0-9_]+$", "type": "string" }, "example": "my_typo3_extension" @@ -1237,7 +1237,7 @@ "schema": { "maxLength": 30, "minLength": 3, - "pattern": "^[a-z]{1}[a-z0-9_]+$", + "pattern": "^[a-z][a-z0-9_]+$", "type": "string" }, "example": "my_typo3_extension" @@ -1360,7 +1360,7 @@ "schema": { "maxLength": 30, "minLength": 3, - "pattern": "^[a-z]{1}[a-z0-9_]+$", + "pattern": "^[a-z][a-z0-9_]+$", "type": "string" }, "example": "my_typo3_extension" @@ -1490,7 +1490,7 @@ "schema": { "maxLength": 30, "minLength": 3, - "pattern": "^[a-z]{1}[a-z0-9_]+$", + "pattern": "^[a-z][a-z0-9_]+$", "type": "string" }, "example": "my_typo3_extension" @@ -1644,7 +1644,7 @@ "schema": { "maxLength": 30, "minLength": 3, - "pattern": "^[a-z]{1}[a-z0-9_]+$", + "pattern": "^[a-z][a-z0-9_]+$", "type": "string" }, "example": "my_typo3_extension" @@ -1787,7 +1787,7 @@ "schema": { "maxLength": 30, "minLength": 3, - "pattern": "^[a-z]{1}[a-z0-9_]+$", + "pattern": "^[a-z][a-z0-9_]+$", "type": "string" }, "example": "my_typo3_extension" @@ -1965,7 +1965,7 @@ "schema": { "maxLength": 30, "minLength": 3, - "pattern": "^[a-z]{1}[a-z0-9_]+$", + "pattern": "^[a-z][a-z0-9_]+$", "type": "string" }, "example": "my_typo3_extension" @@ -2103,7 +2103,7 @@ "schema": { "maxLength": 30, "minLength": 3, - "pattern": "^[a-z]{1}[a-z0-9_]+$", + "pattern": "^[a-z][a-z0-9_]+$", "type": "string" }, "example": "my_typo3_extension" @@ -3070,7 +3070,7 @@ "schema": { "maxLength": 30, "minLength": 3, - "pattern": "^[a-z]{1}[a-z0-9_]+$", + "pattern": "^[a-z][a-z0-9_]+$", "type": "string" }, "example": "my_typo3_extension" @@ -3246,7 +3246,7 @@ "items": { "maxLength": 30, "minLength": 3, - "pattern": "^((?!(tx|user|pages|tt|sys|ts_language|csh))[a-z]{1}[a-z0-9_]+)$", + "pattern": "^((?!(tx|user|pages|tt|sys|ts_language|csh))[a-z][a-z0-9_]+)$", "type": "string" } }, diff --git a/extensions/ter_rest/Resources/Private/Schema/v1.yaml b/extensions/ter_rest/Resources/Private/Schema/v1.yaml index fdad84959d109e4e805c26e5282c5765cb4c593a..e897836b077d2a186f8c3d8b6817467ee12730d4 100644 --- a/extensions/ter_rest/Resources/Private/Schema/v1.yaml +++ b/extensions/ter_rest/Resources/Private/Schema/v1.yaml @@ -162,7 +162,7 @@ paths: items: maxLength: 30 minLength: 3 - pattern: ^((?!(tx|user|pages|tt|sys|ts_language|csh))[a-z]{1}[a-z0-9_]+)$ + pattern: ^((?!(tx|user|pages|tt|sys|ts_language|csh))[a-z][a-z0-9_]+)$ type: string example: my_new_extension,another_awesome_extension responses: @@ -557,7 +557,7 @@ paths: schema: maxLength: 30 minLength: 3 - pattern: ^[a-z]{1}[a-z0-9_]+$ + pattern: ^[a-z][a-z0-9_]+$ type: string example: my_typo3_extension responses: @@ -636,7 +636,7 @@ paths: schema: maxLength: 30 minLength: 3 - pattern: ^[a-z]{1}[a-z0-9_]+$ + pattern: ^[a-z][a-z0-9_]+$ type: string example: my_typo3_extension requestBody: @@ -718,7 +718,7 @@ paths: schema: maxLength: 30 minLength: 3 - pattern: ^[a-z]{1}[a-z0-9_]+$ + pattern: ^[a-z][a-z0-9_]+$ type: string example: my_typo3_extension responses: @@ -806,7 +806,7 @@ paths: schema: maxLength: 30 minLength: 3 - pattern: ^[a-z]{1}[a-z0-9_]+$ + pattern: ^[a-z][a-z0-9_]+$ type: string example: my_typo3_extension responses: @@ -882,7 +882,7 @@ paths: schema: maxLength: 30 minLength: 3 - pattern: ^[a-z]{1}[a-z0-9_]+$ + pattern: ^[a-z][a-z0-9_]+$ type: string example: my_typo3_extension responses: @@ -962,7 +962,7 @@ paths: schema: maxLength: 30 minLength: 3 - pattern: ^[a-z]{1}[a-z0-9_]+$ + pattern: ^[a-z][a-z0-9_]+$ type: string example: my_typo3_extension - name: username @@ -1060,7 +1060,7 @@ paths: schema: maxLength: 30 minLength: 3 - pattern: ^[a-z]{1}[a-z0-9_]+$ + pattern: ^[a-z][a-z0-9_]+$ type: string example: my_typo3_extension - name: version @@ -1151,7 +1151,7 @@ paths: schema: maxLength: 30 minLength: 3 - pattern: ^[a-z]{1}[a-z0-9_]+$ + pattern: ^[a-z][a-z0-9_]+$ type: string example: my_typo3_extension - name: version @@ -1264,7 +1264,7 @@ paths: schema: maxLength: 30 minLength: 3 - pattern: ^[a-z]{1}[a-z0-9_]+$ + pattern: ^[a-z][a-z0-9_]+$ type: string example: my_typo3_extension - name: version @@ -1352,7 +1352,7 @@ paths: schema: maxLength: 30 minLength: 3 - pattern: ^[a-z]{1}[a-z0-9_]+$ + pattern: ^[a-z][a-z0-9_]+$ type: string example: my_typo3_extension - name: version @@ -2002,7 +2002,7 @@ components: schema: maxLength: 30 minLength: 3 - pattern: ^[a-z]{1}[a-z0-9_]+$ + pattern: ^[a-z][a-z0-9_]+$ type: string example: my_typo3_extension Username: @@ -2149,7 +2149,7 @@ components: items: maxLength: 30 minLength: 3 - pattern: ^((?!(tx|user|pages|tt|sys|ts_language|csh))[a-z]{1}[a-z0-9_]+)$ + pattern: ^((?!(tx|user|pages|tt|sys|ts_language|csh))[a-z][a-z0-9_]+)$ type: string example: my_new_extension,another_awesome_extension requestBodies: diff --git a/extensions/ter_rest/Tests/Unit/Routing/RouteArgument/RouteArgumentFactoryTest.php b/extensions/ter_rest/Tests/Unit/Routing/RouteArgument/RouteArgumentFactoryTest.php index 32880f26e0fe50b9e11786807606ad204b71c077..41a57851c02d467422f904c168a650a791504b3c 100644 --- a/extensions/ter_rest/Tests/Unit/Routing/RouteArgument/RouteArgumentFactoryTest.php +++ b/extensions/ter_rest/Tests/Unit/Routing/RouteArgument/RouteArgumentFactoryTest.php @@ -106,7 +106,7 @@ class RouteArgumentFactoryTest extends AbstractTestCase $this->getStringArgumentConfiguration(['value' => '12345foobar']), '{"name":"key","value":"12345foobar","validationErrors":["The given value \'12345foobar\' for argument \'key\'' . ' must be at max 10 chars long.","The given value \'12345foobar\' for argument \'key\' does not match the pattern:' - . ' ^[a-z]{1}[a-z0-9_]+$"]}', + . ' ^[a-z][a-z0-9_]+$"]}', 0 ]; yield 'StringArgument Invalid (wrong type)' => [ @@ -198,7 +198,7 @@ class RouteArgumentFactoryTest extends AbstractTestCase 'type' => 'string', 'minLength' => 1, 'maxLength' => 10, - 'pattern' => '^[a-z]{1}[a-z0-9_]+$' + 'pattern' => '^[a-z][a-z0-9_]+$' ] ] ],