diff options
author | provokateurin <kate@provokateurin.de> | 2024-07-15 15:25:45 +0200 |
---|---|---|
committer | provokateurin <kate@provokateurin.de> | 2024-07-18 11:25:32 +0200 |
commit | e5dcdfb9e012dbe2811832e4bc0c233bdb3fcf21 (patch) | |
tree | d88e1d5bb6b08aadf491c075336065cf34baa887 /lib/private | |
parent | 1de5adf867b46bf713ac6de4b92c53aee1bf15af (diff) | |
download | nextcloud-server-e5dcdfb9e012dbe2811832e4bc0c233bdb3fcf21.tar.gz nextcloud-server-e5dcdfb9e012dbe2811832e4bc0c233bdb3fcf21.zip |
feat(Security): Warn about using annotations instead of attributes
Signed-off-by: provokateurin <kate@provokateurin.de>
Diffstat (limited to 'lib/private')
4 files changed, 12 insertions, 2 deletions
diff --git a/lib/private/AppFramework/DependencyInjection/DIContainer.php b/lib/private/AppFramework/DependencyInjection/DIContainer.php index 4add17396b0..c25b6994b4f 100644 --- a/lib/private/AppFramework/DependencyInjection/DIContainer.php +++ b/lib/private/AppFramework/DependencyInjection/DIContainer.php @@ -207,7 +207,8 @@ class DIContainer extends SimpleContainer implements IAppContainer { $c->get(IRequest::class), $c->get(IControllerMethodReflector::class), $c->get(IUserSession::class), - $c->get(IThrottler::class) + $c->get(IThrottler::class), + $c->get(LoggerInterface::class) ) ); $dispatcher->registerMiddleware( @@ -251,6 +252,7 @@ class DIContainer extends SimpleContainer implements IAppContainer { $c->get(IUserSession::class), $c->get(ITimeFactory::class), $c->get(\OC\Authentication\Token\IProvider::class), + $c->get(LoggerInterface::class), ) ); $dispatcher->registerMiddleware( diff --git a/lib/private/AppFramework/Middleware/Security/CORSMiddleware.php b/lib/private/AppFramework/Middleware/Security/CORSMiddleware.php index 7b617b22e3c..3f0755b1b91 100644 --- a/lib/private/AppFramework/Middleware/Security/CORSMiddleware.php +++ b/lib/private/AppFramework/Middleware/Security/CORSMiddleware.php @@ -21,6 +21,7 @@ use OCP\AppFramework\Middleware; use OCP\IRequest; use OCP\ISession; use OCP\Security\Bruteforce\IThrottler; +use Psr\Log\LoggerInterface; use ReflectionMethod; /** @@ -42,7 +43,9 @@ class CORSMiddleware extends Middleware { public function __construct(IRequest $request, ControllerMethodReflector $reflector, Session $session, - IThrottler $throttler) { + IThrottler $throttler, + private readonly LoggerInterface $logger, + ) { $this->request = $request; $this->reflector = $reflector; $this->session = $session; @@ -103,6 +106,7 @@ class CORSMiddleware extends Middleware { if (!empty($reflectionMethod->getAttributes($attributeClass))) { + $this->logger->debug($reflectionMethod->getDeclaringClass()->getName() . '::' . $reflectionMethod->getName() . ' uses the @' . $annotationName . ' annotation and should use the #[' . $attributeClass . '] attribute instead'); return true; } diff --git a/lib/private/AppFramework/Middleware/Security/PasswordConfirmationMiddleware.php b/lib/private/AppFramework/Middleware/Security/PasswordConfirmationMiddleware.php index 5ff9d7386da..a983de23597 100644 --- a/lib/private/AppFramework/Middleware/Security/PasswordConfirmationMiddleware.php +++ b/lib/private/AppFramework/Middleware/Security/PasswordConfirmationMiddleware.php @@ -20,6 +20,7 @@ use OCP\ISession; use OCP\IUserSession; use OCP\Session\Exceptions\SessionNotAvailableException; use OCP\User\Backend\IPasswordConfirmationBackend; +use Psr\Log\LoggerInterface; use ReflectionMethod; class PasswordConfirmationMiddleware extends Middleware { @@ -48,6 +49,7 @@ class PasswordConfirmationMiddleware extends Middleware { IUserSession $userSession, ITimeFactory $timeFactory, IProvider $tokenProvider, + private readonly LoggerInterface $logger, ) { $this->reflector = $reflector; $this->session = $session; @@ -113,6 +115,7 @@ class PasswordConfirmationMiddleware extends Middleware { } if ($this->reflector->hasAnnotation($annotationName)) { + $this->logger->debug($reflectionMethod->getDeclaringClass()->getName() . '::' . $reflectionMethod->getName() . ' uses the @' . $annotationName . ' annotation and should use the #[' . $attributeClass . '] attribute instead'); return true; } diff --git a/lib/private/AppFramework/Middleware/Security/SecurityMiddleware.php b/lib/private/AppFramework/Middleware/Security/SecurityMiddleware.php index bc2014da246..603b5d543dc 100644 --- a/lib/private/AppFramework/Middleware/Security/SecurityMiddleware.php +++ b/lib/private/AppFramework/Middleware/Security/SecurityMiddleware.php @@ -243,6 +243,7 @@ class SecurityMiddleware extends Middleware { } if ($this->reflector->hasAnnotation($annotationName)) { + $this->logger->debug($reflectionMethod->getDeclaringClass()->getName() . '::' . $reflectionMethod->getName() . ' uses the @' . $annotationName . ' annotation and should use the #[' . $attributeClass . '] attribute instead'); return true; } |