[BUGFIX] Actually do regex search/replace in code migrations

Actually makes searchAndReplaceRegex() in code migrations do something
with the target files.

Change-Id: I22931a67660e4af23ad55d151fff0d8338adb3ac
Fixes: #44402
Releases: master, 2.0
[FEATURE] Support arguments in Scripts::executeCommand

Previously it was not supported to have command arguments in a CLI
subcommand. This patch solves this issue by adding a $commandArguments
parameter to the executeCommand() method.

Resolves: #46072
Releases: 2.0, master
Change-Id: Ie045e6aaefea7803516745a4dd0d9ab9453106f1
Revert "[FEATURE] Make ArrayConverter map only allowed properties"

This reverts commit ed875023d0a980b4192bc01e7307db9efc7d2071
The feature is breaking if you rely on Arrays being converted
as is and it breaks some functional tests. Until a backwards
compatible solution is found the feature is reverted.

Change-Id: Ic0dc0e6a61039180ecdef498eea37a3615130776
[!!!][BUGFIX] Enable settings override with empty array value

This change updates the behavior of arrayMergeRecursiveOverrule such
that empty arrays are also treated as empty values. If you used this
function before it can lead to different results after the change.

Before the change an empty array value was always merged
into the first array, even if emptyValuesOverride was set to TRUE.
With the new behavior an empty array value overrides a given input
value if emptyValuesOverride is set. This allows to override settings
with an empty array in the settings hierarchy.

This change is breaking if your settings hierarchy depends on
empty array values not overriding a parent configuration.

Resolves: #36720
Releases: master, 2.0
Change-Id: Ib7b93e62b59cea4c3d706eb39a66e01f2c44a22e
[TASK] Adjust tests to rewritten URLs in functional tests

The resolution for #44434 makes Flow behave as if mod_rewrite was
available during functional tests. Some tests checking against
generated URLs need to be adjusted, so they no longer expect it  to
produce links with embedded "index.php".

Change-Id: I1a8d6a6ce69016d3c411c3da567084aa0d5cf3ca
Related: #44434
Releases: master, 2.0
Merge "[BUGFIX] Actually do regex search/replace in code migrations"
Merge "[TASK] Adjust tests to rewritten URLs in functional tests"
[BUGFIX] Fix variable type declaration in Security\Context

The $request member is annotated as being Http\Request but must be
Mvc\ActionRequest instead.

Change-Id: I5b4e5881b01f4eb35f28ab23e79178ad51db89ed
Fixes: #44743
Releases: master, 2.0, 1.1
[BUGFIX] Avoid side effects in APC cache backend

When more than one cache was using the APC cache backend, use of the
same entry identifiers would cause side effects, as the frontends would
access the same entries.

This is fixed by including the cache identifier in the prefix hash.

Change-Id: I50fe007c97eefebbb6eb801c53d62e55729665a4
Fixes: #44471
Related: #38135
Releases: master, 2.0, 1.1
Merge "[BUGFIX] Fix variable type declaration in Security\Context"
Merge "[BUGFIX] Avoid side effects in APC cache backend"
[FEATURE] Set packageType when creating new package

When calling packageManager->createPackage you have
no way to define what package type you are creating.

This allows for ex. SiteKickstarter to set correct
package type in composer manifest

Change-Id: Ib1c96f875a9854c3efc8f3059d26cc3d60e9aca7
Resolves: #44258
Releases: master, 2.0
[BUGFIX] Reduce side effects of sessions used in functional tests

This patch makes sure that once a session has been closed or
destroyed, it will rebuild information determined from the request /
response in case it is started again.

While this scenario (a session is closed and started again during
the same PHP request) is uncommon in real world projects, it may
happen during functional tests. Therefore this is mainly a fix to
reduce side effects in functional tests.

A concrete side effect Flow has without this patch is that session
cookies are set to the HTTP response only when a session was
started the first time.

This patch also adds an explanation about starting / resuming
sessions to the class doc comment.

Change-Id: Ia78851bd3167733114b94255e5ee201ca3197564
Resolves: #46703
Resolves: #44202
Releases: master, 2.0
[BUGFIX] Session: add safeguard against incompatible request handlers

This adds additional checks and throws an exception if a session should be
started but the currently active request handler does not implement the
HttpRequestHandlerInterface.

Change-Id: I511525f818fbde31b6a8c8793cb2f6519f46a6c2
Resolves: #44087
Releases: master, 2.0
[FEATURE] Support for sessionless authentication

This feature enables authentication without the need of a session to
be started. This is useful for stateless services (e.g. REST) where
you don't want Flow to create a session cookie.

Authentication tokens which don't rely on a session simply implement
the SessionlessTokenInterface marker interface.

This patch reverts parts of the first implementation of sessionless
authentication introduced in https://review.typo3.org/#/c/18388
(commit I5f86cb7a3a3fff3220d61d705f216e1b1d4f2369).
The original implementation was a breaking change with a few
unresolved side effects.

The implementation contained in this change set is backwards
compatible with already existing authentication tokens which
relied on sessions.

This patch also contains a small speed optimization for the CSRF
Protection pattern which assumes that no account has been
authenticated yet if the Authentication Manager is still a Dependency
Proxy.

Change-Id: Iccd2b8fde6a5f37d3d434c959705a85cdcda4b11
Resolves: #45282
Resolves: #46428
Releases: master, 2.0
Merge "[FEATURE] Support arguments in Scripts::executeCommand"
Merge remote-tracking branch 'upstream/master'
[TASK] Workaround for TYPO3.Asset

Change-Id: I5a350249d65fab966da38fbdd74c8bc36e955d5b