# |
May 7th 2021, 22:56 |
slackebot |
/home/tomppa/www/gtms/vendor/cakephp/cakephp/src/Event/EventManager.php(329): Cake\Event\EventManager->_callListener() #2 /home/tomppa/www/gtms/vendor/cakephp/cakephp/src/Event/EventDispatcherTrait.php(113): Cake\Event\EventManager->dispatch() #3 /home/tomppa/www/gtms/vendor/cakephp/cakephp/src/Controller/Controller.php(680): Cake\Controller\Controller->dispatchEvent() #4 |
# |
May 7th 2021, 22:56 |
thomas078 |
``` Error: [Authentication\Authenticator\UnauthenticatedException] No identity found. You can skip this check by configuring `requireIdentity` to be `false`. (/home/tomppa/www/gtms/vendor/cakephp/authentication/src/Controller/Component/AuthenticationComponent.php:153) #0 /home/tomppa/www/gtms/vendor/cakephp/cakephp/src/Event/EventManager.php(352): Authentication\Controller\Component\AuthenticationComponent->startup() #1 |
# |
May 7th 2021, 22:56 |
thomas078 |
does not land there. |
# |
May 7th 2021, 22:52 |
ndm |
For your redirect problem, you can debug if you land here, and if you get a valid redirect url: https://github.com/cakephp/authentication/blob/1.x/src/Middleware/AuthenticationMiddleware.php#L129-L137 |
# |
May 7th 2021, 22:50 |
ndm |
1.x is for CakePHP 3.x, and 2.x is for CakePHP 4.x, for both authentication and authorization |
# |
May 7th 2021, 22:48 |
thomas078 |
Also found something strange. Method 'App\Application::getAuthorizationService()' is not compatible with method 'Authorization\AuthorizationServiceProviderInterface::getAuthorizationService()' Trying to implement this in cake3.9. had to install composer require "cakephp/authorization:^1.0" instead of 2.0. Maybe this is not compatible with authentication 1.0? |
# |
May 7th 2021, 22:46 |
thomas078 |
strange as authentication middleware works |
# |
May 7th 2021, 22:45 |
ndm |
Maybe the authentication middleware is misplaced and something else handles the exception. |
# |
May 7th 2021, 22:42 |
thomas078 |
Application.php |
# |
May 7th 2021, 22:39 |
ndm |
maybe you're setting this in the wrong place |
# |
May 7th 2021, 22:30 |
thomas078 |
i set $service->setConfig([ 'unauthenticatedRedirect' => '/users/login', 'queryParam' => 'redirect', ]); but still i get *Error:* No identity found. You can skip this check by configuring `requireIdentity` to be `false`. but no redirect? |
# |
May 7th 2021, 22:28 |
thomas078 |
then i will really see the whole scope to see how much work to migrate from cake 3 to 4 |
# |
May 7th 2021, 22:27 |
thomas078 |
sure. Will test that as well |
# |
May 7th 2021, 22:21 |
ndm |
correct, authorization checks are done in policies now |
# |
May 7th 2021, 22:20 |
thomas078 |
and that old inAuthorized is not called nomore |
# |
May 7th 2021, 22:20 |
thomas078 |
I guess this is now with Authorization plugin |
# |
May 7th 2021, 22:19 |
thomas078 |
ok. Authentication set. Now basic Authorization. I used to do it like: public function isAuthorized($user) |
# |
May 7th 2021, 22:12 |
ndm |
yes |
# |
May 7th 2021, 22:12 |
thomas078 |
So, basically with that i can manually set it |
# |
May 7th 2021, 22:11 |
thomas078 |
ok. Got it. I was confused as Authentication already worked :) |
# |
May 7th 2021, 22:10 |
ndm |
That method _can_ be used to manually authenticate an identity, or to update a persisted identity (for example in the session). You don't _have_ to use it for authentication to work. |
# |
May 7th 2021, 22:07 |
thomas078 |
This is confusing. Maybe after identifying user i have to setIdentity as well? ```$user = $this->Users->find()->where(['Users.id' => $this->Authentication->getIdentityData('id')])->first();` $this->Authentication->setIdentity($user);``` ? |
# |
May 7th 2021, 22:01 |
thomas078 |
what does it even do as i can anyway call logged in users with $this->Authentication->getIdentity() |
# |
May 7th 2021, 22:01 |
thomas078 |
Second question. In Auth component it was like $this->Auth->setUser($user);. Do i need to call ```// Persist the user into configured authenticators. $this->Authentication->setIdentity($user);``` |
# |
May 7th 2021, 22:00 |
thomas078 |
? |
# |
May 7th 2021, 22:00 |
thomas078 |
for e.g i can call like debug($this->Authentication->getIdentityData('role')); and i will get my role, is this the correct way to do it |
# |
May 7th 2021, 21:59 |
thomas078 |
debug($this->Authentication->getIdentity()); Getting the identify object will all correct. Littlebit confused what is the correct way to get actual information. Identifiers? |
# |
May 7th 2021, 21:04 |
tyler.adam.lazenby |
its for a CI |
# |
May 7th 2021, 21:04 |
tyler.adam.lazenby |
Does anybody have any docker files they would be willing to share for cakephp 4.x and php8.0 |
# |
May 7th 2021, 20:45 |
thomas078 |
will start to play with that now |
# |
May 7th 2021, 20:45 |
thomas078 |
cool. Thanks |
# |
May 7th 2021, 20:43 |
slackebot |
] ); }``` |
# |
May 7th 2021, 20:43 |
kevin.pfeifer |
if you want to have specific actions without authentication, then yes, they should be placed in the beforeFilter in the controller like ``` public function beforeFilter( \Cake\Event\EventInterface $event ) { parent::beforeFilter( $event ); // Configure the login action to not require authentication, preventing // the infinite redirect loop issue $this->Authentication->addUnauthenticatedActions( [ 'login' |
# |
May 7th 2021, 20:42 |
thomas078 |
@kevin.pfeifer Thanks. Thats it. Best place to set it is at controllers beforeFilter? |
# |
May 7th 2021, 20:35 |
kevin.pfeifer |
like it is stated here: https://book.cakephp.org/authentication/2/en/index.html#getting-started |
# |
May 7th 2021, 20:34 |
kevin.pfeifer |
do you have ```$this->loadComponent( 'Authentication.Authentication' );``` in your AppController.php initialize function? |
# |
May 7th 2021, 20:30 |
thomas078 |
Any idea where to look |
# |
May 7th 2021, 20:30 |
thomas078 |
trying my best to migrate Auth component to Authentication. debug($this->Authentication); on my UsersController is giving me ```Undefined property: UsersController::$Authentication in /src/Controller/UsersController.php on line 72 [CORE/src/Controller/Controller.php, line 387]``` |
# |
May 7th 2021, 17:49 |
mehov |
Okay, no surrogate it is then! Somehow never tried using a composite key, so this is about time. Thanks again for the advice guys :) |
# |
May 7th 2021, 17:39 |
kevin.pfeifer |
I don't even have Foreign Key constraints set on my database, I just let cakephp handle all that ,:) |
# |
May 7th 2021, 17:37 |
ndm |
Technically it doesn't even need to be a real constraint, but just defined in the table class, but that won't work with auto-tables. |