public function processRequestPatterns(array &$configuration)
{
if (!isset($configuration['TYPO3']['Flow']['security']['authentication']['providers'])) {
return;
}
foreach ($configuration['TYPO3']['Flow']['security']['authentication']['providers'] as $providerName => &$providerOptions) {
if (!isset($providerOptions['requestPatterns'])) {
continue;
}
foreach ($providerOptions['requestPatterns'] as $requestPatternName => $requestPatternOptions) {
// already converted?
if (isset($requestPatternOptions['pattern'])) {
continue;
}
switch (strtolower($requestPatternName)) {
case 'controllerobjectname':
$requestPatternOptions = ['pattern' => 'ControllerObjectName', 'patternOptions' => ['controllerObjectNamePattern' => $requestPatternOptions]];
break;
case 'csrfprotection':
$requestPatternOptions = ['pattern' => 'CsrfProtection'];
break;
case 'host':
$requestPatternOptions = ['pattern' => 'Host', 'patternOptions' => ['hostPattern' => $requestPatternOptions]];
break;
case 'ip':
$requestPatternOptions = ['pattern' => 'Ip', 'patternOptions' => ['cidrPattern' => $requestPatternOptions]];
break;
case 'uri':
$requestPatternOptions = ['pattern' => 'Uri', 'patternOptions' => ['uriPattern' => $requestPatternOptions]];
break;
default:
$this->showWarning(sprintf('Could not automatically convert the syntax of the custom request pattern "%s". Please adjust it manually as described in the documentation.', $requestPatternName));
continue 2;
}
$patternIdentifier = $this->targetPackageData['packageKey'] . ':' . $this->getShortClassName($requestPatternName);
$providerOptions['requestPatterns'][$patternIdentifier] = $requestPatternOptions;
unset($providerOptions['requestPatterns'][$requestPatternName]);
$this->showNote(sprintf('Adjusted configuration syntax of the "%s" request pattern.', $requestPatternName));
}
}
}