Skip to content

Commit f789732

Browse files
authored
Merge pull request #42640 from nextcloud/fix/fix-authentication-exceptions-2
Always catch OCP versions of authentication exceptions
2 parents 07749e6 + a526a38 commit f789732

File tree

18 files changed

+104
-98
lines changed

18 files changed

+104
-98
lines changed

apps/oauth2/lib/Controller/OauthApiController.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@
2828
*/
2929
namespace OCA\OAuth2\Controller;
3030

31-
use OC\Authentication\Exceptions\ExpiredTokenException;
32-
use OC\Authentication\Exceptions\InvalidTokenException;
3331
use OC\Authentication\Token\IProvider as TokenProvider;
3432
use OCA\OAuth2\Db\AccessTokenMapper;
3533
use OCA\OAuth2\Db\ClientMapper;
@@ -39,6 +37,8 @@
3937
use OCP\AppFramework\Http;
4038
use OCP\AppFramework\Http\JSONResponse;
4139
use OCP\AppFramework\Utility\ITimeFactory;
40+
use OCP\Authentication\Exceptions\ExpiredTokenException;
41+
use OCP\Authentication\Exceptions\InvalidTokenException;
4242
use OCP\DB\Exception;
4343
use OCP\IRequest;
4444
use OCP\Security\Bruteforce\IThrottler;

apps/oauth2/lib/Migration/SetTokenExpiration.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@
2626
*/
2727
namespace OCA\OAuth2\Migration;
2828

29-
use OC\Authentication\Exceptions\InvalidTokenException;
3029
use OC\Authentication\Token\IProvider as TokenProvider;
3130
use OCA\OAuth2\Db\AccessToken;
3231
use OCP\AppFramework\Utility\ITimeFactory;
32+
use OCP\Authentication\Exceptions\InvalidTokenException;
3333
use OCP\IDBConnection;
3434
use OCP\Migration\IOutput;
3535
use OCP\Migration\IRepairStep;

apps/settings/lib/Controller/AuthSettingsController.php

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,19 +32,20 @@
3232
namespace OCA\Settings\Controller;
3333

3434
use BadMethodCallException;
35-
use OC\Authentication\Exceptions\ExpiredTokenException;
36-
use OC\Authentication\Exceptions\InvalidTokenException;
35+
use OC\Authentication\Exceptions\InvalidTokenException as OcInvalidTokenException;
3736
use OC\Authentication\Exceptions\PasswordlessTokenException;
38-
use OC\Authentication\Exceptions\WipeTokenException;
3937
use OC\Authentication\Token\INamedToken;
4038
use OC\Authentication\Token\IProvider;
41-
use OC\Authentication\Token\IToken;
4239
use OC\Authentication\Token\RemoteWipe;
4340
use OCA\Settings\Activity\Provider;
4441
use OCP\Activity\IManager;
4542
use OCP\AppFramework\Controller;
4643
use OCP\AppFramework\Http;
4744
use OCP\AppFramework\Http\JSONResponse;
45+
use OCP\Authentication\Exceptions\ExpiredTokenException;
46+
use OCP\Authentication\Exceptions\InvalidTokenException;
47+
use OCP\Authentication\Exceptions\WipeTokenException;
48+
use OCP\Authentication\Token\IToken;
4849
use OCP\IRequest;
4950
use OCP\ISession;
5051
use OCP\IUserSession;
@@ -292,7 +293,8 @@ private function findTokenByIdAndUser(int $id): IToken {
292293
$token = $e->getToken();
293294
}
294295
if ($token->getUID() !== $this->uid) {
295-
throw new InvalidTokenException('This token does not belong to you!');
296+
/** @psalm-suppress DeprecatedClass We have to throw the OC version so both OC and OCP catches catch it */
297+
throw new OcInvalidTokenException('This token does not belong to you!');
296298
}
297299
return $token;
298300
}
@@ -305,7 +307,7 @@ private function findTokenByIdAndUser(int $id): IToken {
305307
* @param int $id
306308
* @return JSONResponse
307309
* @throws InvalidTokenException
308-
* @throws \OC\Authentication\Exceptions\ExpiredTokenException
310+
* @throws ExpiredTokenException
309311
*/
310312
public function wipe(int $id): JSONResponse {
311313
if ($this->checkAppToken()) {

apps/settings/lib/Settings/Personal/Security/Authtokens.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,12 @@
2525
*/
2626
namespace OCA\Settings\Settings\Personal\Security;
2727

28-
use OC\Authentication\Exceptions\InvalidTokenException;
2928
use OC\Authentication\Token\INamedToken;
3029
use OC\Authentication\Token\IProvider as IAuthTokenProvider;
3130
use OC\Authentication\Token\IToken;
3231
use OCP\AppFramework\Http\TemplateResponse;
3332
use OCP\AppFramework\Services\IInitialState;
33+
use OCP\Authentication\Exceptions\InvalidTokenException;
3434
use OCP\ISession;
3535
use OCP\IUserSession;
3636
use OCP\Session\Exceptions\SessionNotAvailableException;

core/Controller/AppPasswordController.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,13 @@
2929
namespace OC\Core\Controller;
3030

3131
use OC\Authentication\Events\AppPasswordCreatedEvent;
32-
use OC\Authentication\Exceptions\InvalidTokenException;
3332
use OC\Authentication\Token\IProvider;
3433
use OC\Authentication\Token\IToken;
3534
use OCP\AppFramework\Http;
3635
use OCP\AppFramework\Http\DataResponse;
3736
use OCP\AppFramework\OCS\OCSForbiddenException;
3837
use OCP\Authentication\Exceptions\CredentialsUnavailableException;
38+
use OCP\Authentication\Exceptions\InvalidTokenException;
3939
use OCP\Authentication\Exceptions\PasswordUnavailableException;
4040
use OCP\Authentication\LoginCredentials\IStore;
4141
use OCP\EventDispatcher\IEventDispatcher;

core/Controller/ClientFlowLoginController.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
namespace OC\Core\Controller;
3434

3535
use OC\Authentication\Events\AppPasswordCreatedEvent;
36-
use OC\Authentication\Exceptions\InvalidTokenException;
3736
use OC\Authentication\Exceptions\PasswordlessTokenException;
3837
use OC\Authentication\Token\IProvider;
3938
use OC\Authentication\Token\IToken;
@@ -47,6 +46,7 @@
4746
use OCP\AppFramework\Http\Response;
4847
use OCP\AppFramework\Http\StandaloneTemplateResponse;
4948
use OCP\AppFramework\Utility\ITimeFactory;
49+
use OCP\Authentication\Exceptions\InvalidTokenException;
5050
use OCP\Defaults;
5151
use OCP\EventDispatcher\IEventDispatcher;
5252
use OCP\IL10N;

core/Controller/ClientFlowLoginV2Controller.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
*/
2828
namespace OC\Core\Controller;
2929

30-
use OC\Authentication\Exceptions\InvalidTokenException;
3130
use OC\Core\Db\LoginFlowV2;
3231
use OC\Core\Exception\LoginFlowV2NotFoundException;
3332
use OC\Core\Service\LoginFlowV2Service;
@@ -40,6 +39,7 @@
4039
use OCP\AppFramework\Http\RedirectResponse;
4140
use OCP\AppFramework\Http\Response;
4241
use OCP\AppFramework\Http\StandaloneTemplateResponse;
42+
use OCP\Authentication\Exceptions\InvalidTokenException;
4343
use OCP\Defaults;
4444
use OCP\IL10N;
4545
use OCP\IRequest;

core/Controller/WipeController.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,11 @@
2626
*/
2727
namespace OC\Core\Controller;
2828

29-
use OC\Authentication\Exceptions\InvalidTokenException;
3029
use OC\Authentication\Token\RemoteWipe;
3130
use OCP\AppFramework\Controller;
3231
use OCP\AppFramework\Http;
3332
use OCP\AppFramework\Http\JSONResponse;
33+
use OCP\Authentication\Exceptions\InvalidTokenException;
3434
use OCP\IRequest;
3535

3636
class WipeController extends Controller {

core/Service/LoginFlowV2Service.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
*/
2727
namespace OC\Core\Service;
2828

29-
use OC\Authentication\Exceptions\InvalidTokenException;
3029
use OC\Authentication\Exceptions\PasswordlessTokenException;
3130
use OC\Authentication\Token\IProvider;
3231
use OC\Authentication\Token\IToken;
@@ -37,6 +36,7 @@
3736
use OC\Core\Exception\LoginFlowV2NotFoundException;
3837
use OCP\AppFramework\Db\DoesNotExistException;
3938
use OCP\AppFramework\Utility\ITimeFactory;
39+
use OCP\Authentication\Exceptions\InvalidTokenException;
4040
use OCP\IConfig;
4141
use OCP\Security\ICrypto;
4242
use OCP\Security\ISecureRandom;

lib/private/Authentication/Events/AppPasswordCreatedEvent.php

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,14 @@
2525
*/
2626
namespace OC\Authentication\Events;
2727

28-
use OC\Authentication\Token\IToken;
28+
use OCP\Authentication\Token\IToken;
2929
use OCP\EventDispatcher\Event;
3030

3131
class AppPasswordCreatedEvent extends Event {
32-
/** @var IToken */
33-
private $token;
34-
35-
public function __construct(IToken $token) {
32+
public function __construct(
33+
private IToken $token,
34+
) {
3635
parent::__construct();
37-
$this->token = $token;
3836
}
3937

4038
public function getToken(): IToken {

0 commit comments

Comments
 (0)