filter request-target from header

Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
pull/1538/head
Maxence Lange 2022-11-23 11:40:06 -01:00
rodzic 8875e12e9a
commit a7f910a693
7 zmienionych plików z 20 dodań i 14 usunięć

Wyświetl plik

@ -18,7 +18,6 @@ all: dev-setup lint build-js-production composer test
# Dev env management # Dev env management
dev-setup: clean clean-dev npm-init composer dev-setup: clean clean-dev npm-init composer
cp -R node_modules/twemoji/2/svg img/twemoji
npm-init: npm-init:
npm install npm install

8
composer.lock wygenerowano
Wyświetl plik

@ -1171,12 +1171,12 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/nextcloud-deps/ocp.git", "url": "https://github.com/nextcloud-deps/ocp.git",
"reference": "d1f996e8d03a10184d48a0120282886b3f7806f7" "reference": "e57eb6aaa56318399f587969879f96d547e015c6"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/d1f996e8d03a10184d48a0120282886b3f7806f7", "url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/e57eb6aaa56318399f587969879f96d547e015c6",
"reference": "d1f996e8d03a10184d48a0120282886b3f7806f7", "reference": "e57eb6aaa56318399f587969879f96d547e015c6",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1207,7 +1207,7 @@
"issues": "https://github.com/nextcloud-deps/ocp/issues", "issues": "https://github.com/nextcloud-deps/ocp/issues",
"source": "https://github.com/nextcloud-deps/ocp/tree/master" "source": "https://github.com/nextcloud-deps/ocp/tree/master"
}, },
"time": "2022-11-10T00:44:20+00:00" "time": "2022-11-23T00:37:22+00:00"
}, },
{ {
"name": "nikic/php-parser", "name": "nikic/php-parser",

Wyświetl plik

@ -36,6 +36,7 @@ use DateTime;
use Doctrine\DBAL\Query\QueryBuilder; use Doctrine\DBAL\Query\QueryBuilder;
use Exception; use Exception;
use OC; use OC;
use OC\DB\Connection;
use OC\DB\SchemaWrapper; use OC\DB\SchemaWrapper;
use OCA\Social\Exceptions\InvalidResourceException; use OCA\Social\Exceptions\InvalidResourceException;
use OCA\Social\Model\ActivityPub\Actor\Person; use OCA\Social\Model\ActivityPub\Actor\Person;
@ -44,7 +45,6 @@ use OCA\Social\Model\StreamAction;
use OCA\Social\Service\ConfigService; use OCA\Social\Service\ConfigService;
use OCA\Social\Service\MiscService; use OCA\Social\Service\MiscService;
use OCA\Social\Tools\Exceptions\DateTimeException; use OCA\Social\Tools\Exceptions\DateTimeException;
use OCP\DB\ISchemaWrapper;
use OCP\DB\QueryBuilder\IQueryBuilder; use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\IDBConnection; use OCP\IDBConnection;
use OCP\IURLGenerator; use OCP\IURLGenerator;
@ -1187,8 +1187,8 @@ class CoreRequestBuilder {
->selectAlias($prefix . '_f.follow_id', $prefix . '_follow_id') ->selectAlias($prefix . '_f.follow_id', $prefix . '_follow_id')
->selectAlias($prefix . '_f.creation', $prefix . '_creation') ->selectAlias($prefix . '_f.creation', $prefix . '_creation')
->leftJoin( ->leftJoin(
$this->defaultSelectAlias, CoreRequestBuilder::TABLE_FOLLOWS, $prefix . '_f', $this->defaultSelectAlias, CoreRequestBuilder::TABLE_FOLLOWS, $prefix . '_f',
$andX $andX
); );
} }
@ -1263,7 +1263,7 @@ class CoreRequestBuilder {
* this just empty all tables from the app. * this just empty all tables from the app.
*/ */
public function emptyAll() { public function emptyAll() {
$schema = new SchemaWrapper(Server::get(IDBConnection::class)); $schema = new SchemaWrapper(Server::get(Connection::class));
foreach (array_keys(self::$tables) as $table) { foreach (array_keys(self::$tables) as $table) {
if ($schema->hasTable($table)) { if ($schema->hasTable($table)) {
$qb = $this->dbConnection->getQueryBuilder(); $qb = $this->dbConnection->getQueryBuilder();
@ -1278,7 +1278,7 @@ class CoreRequestBuilder {
* this just empty all tables from the app. * this just empty all tables from the app.
*/ */
public function uninstallSocialTables() { public function uninstallSocialTables() {
$schema = new SchemaWrapper(Server::get(IDBConnection::class)); $schema = new SchemaWrapper(Server::get(Connection::class));
foreach (array_keys(self::$tables) as $table) { foreach (array_keys(self::$tables) as $table) {
if ($schema->hasTable($table)) { if ($schema->hasTable($table)) {
$schema->dropTable($table); $schema->dropTable($table);

Wyświetl plik

@ -1187,6 +1187,7 @@ class Version1000Date20221118000001 extends SimpleMigrationStep {
); );
$table->setPrimaryKey(['id']); $table->setPrimaryKey(['id']);
$table->addIndex(['token']);
} }
@ -1372,6 +1373,7 @@ class Version1000Date20221118000001 extends SimpleMigrationStep {
] ]
); );
$table->setPrimaryKey(['id']); $table->setPrimaryKey(['id']);
$table->addIndex(['token']);
} }

Wyświetl plik

@ -342,7 +342,7 @@ class CurlService {
* @throws RequestServerException * @throws RequestServerException
*/ */
public function retrieveJsonOrig(NCRequest $request): array { public function retrieveJsonOrig(NCRequest $request): array {
$result = $this->doRequestOrig($request); $result = $this->doRequest($request);
if (strpos($request->getContentType(), 'application/xrd') === 0) { if (strpos($request->getContentType(), 'application/xrd') === 0) {
$xml = simplexml_load_string($result); $xml = simplexml_load_string($result);
@ -374,7 +374,10 @@ class CurlService {
$curl = $this->initRequest($request); $curl = $this->initRequest($request);
$result = curl_exec($curl); $result = curl_exec($curl);
$this->logger->debug('[>>] ' . json_encode($request) . ' result: ' . json_encode($result)); $this->logger->debug(
'[>>] ' . json_encode($request)
. ' result [' . curl_getinfo($curl, CURLINFO_HTTP_CODE) . ']: ' . json_encode($result)
);
if (in_array(curl_errno($curl), $ignoreProtocolOnErrors)) { if (in_array(curl_errno($curl), $ignoreProtocolOnErrors)) {
continue; continue;

Wyświetl plik

@ -163,7 +163,9 @@ class SignatureService {
$signingElements = []; $signingElements = [];
foreach ($elements as $element) { foreach ($elements as $element) {
$signingElements[] = $element . ': ' . $data[$element]; $signingElements[] = $element . ': ' . $data[$element];
$request->addHeader($element, $data[$element]); if ($element !== '(request-target)') {
$request->addHeader($element, $data[$element]);
}
} }
return implode("\n", $signingElements); return implode("\n", $signingElements);

Wyświetl plik

@ -472,7 +472,7 @@ class Request implements JsonSerializable {
* @return array * @return array
*/ */
public function getHeaders(): array { public function getHeaders(): array {
return array_merge(['User-Agent' => $this->getUserAgent()], $this->headers); return array_merge(['user-agent' => $this->getUserAgent()], $this->headers);
} }
/** /**