Chyba autentizace: Cannot instantiate service ‚Nette\Security\IAuthenticator‘, class ‚Authenticator‘ not found

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
r.a.b.b
Člen | 7
+
0
-

Verze Nette: Nette Framework 2.0-dev (revision 7616569 released on 2011–03–10) (2.0 ALPHA pro PHP 5.2)
Verze PHP: PHP 5.3

Dobrý den,
při volání $user->login($form[‚login‘]->value,$form[‚password‘]->value); v LoginForm.php mě to hlásí chybu Cannot instantiate service ‚Nette\Security\IAuthenticator‘, class ‚Authenticator‘ not found. Dělal jsem to podle tutoriálu. Procházel jsem si jiná témata na fóru kde se to již řešilo, avšak nepodařilo se mi to rozchodit.
Chyba přesně vypadá takto:

AmbiguousServiceException

Cannot instantiate service 'Nette\Security\IAuthenticator', class 'Authenticator' not found.

Call stack
     1. Environment/Environment.php (335) source ►  ServiceLocator-> getService (arguments ►)
     2. Web/User.php (163) source ►  Environment:: getService (arguments ►)
     3. Web/User.php (73) source ►  User-> getAuthenticationHandler ()
     4. forms/LoginForm.php (34) source ►  User-> login (arguments ►)
          ...
	  radek 34: $user->login($form['login']->value,$form['password']->value);
          ...
     5. <PHP inner-code> Forms\LoginForm-> formSubmited (arguments ►)
     6. Utils/Callback.php (111) source ►  call_user_func_array (arguments ►)
     7. Utils/ObjectMixin.php (55) source ►  Callback-> invokeArgs (arguments ►)
     ...

Můžete mi poradit??

22
Člen | 1478
+
0
-

není to jasné z tohoto?
Cannot instantiate service 'Nette\Security\IAuthenticator', class 'Authenticator' not found.

zkontrolovat, jestli máš třídu v APP, jestli ji indexuju robotLoader, vymazat obsah TEMP

r.a.b.b
Člen | 7
+
0
-

Třida je v adresari libs/Acl/Security v config.ini mam:

; service.Nette-Security-IAuthenticator = UsersModel

service.Nette-Loaders-RobotLoader.option.directory[] = %appDir%
service.Nette-Loaders-RobotLoader.option.directory[] = %libsDir%
service.Nette-Loaders-RobotLoader.run = TRUE

service.Nette-Security-IAuthorizator = Acl\Security\Acl
service.Nette-Security-IAuthenticator = Acl\Security\Authenticator

a temp mam vymazany

Zkousim vse mozne podle fora ale zatim bez uspechu.

22
Člen | 1478
+
0
-

nevím, ale zkus příště prosím formátovat kód..

service.Nette-Security-IAuthenticator = UsersModel //toto asi vyhodit!
service.Nette-Security-IAuthorizator = Acl
service.Nette-Security-IAuthenticator = Authenticator

nestačí jen takto? ja už starej `config.ini syntax `zapomněl :-)

r.a.b.b
Člen | 7
+
0
-

Ten první řádek jsem zkoušel zakomentovat a chyba stále přetrvává. Řeším to dnes skoro celý den a nemůžu na to přijít. :)

22
Člen | 1478
+
0
-

no ale ja ti tam odmazal ještě ty cesty… :-) Jinak 2 Authentizatory asi neuzijes takovýmto způsobem…

r.a.b.b
Člen | 7
+
0
-

Ted to config.ini mam takto:

;service.Nette-Security-IAuthenticator = UsersModel

service.Nette-Loaders-RobotLoader.option.directory[] = %appDir%
service.Nette-Loaders-RobotLoader.option.directory[] = %libsDir%
service.Nette-Loaders-RobotLoader.run = TRUE

service.Nette-Security-IAuthorizator  = Acl
service.Nette-Security-IAuthenticator = Authenticator

a bohužel pořád žádná změna :)

22
Člen | 1478
+
0
-

já nevím, mně se to zdá dobré, jestli to hlasí pořád tu stejnou chybu, tak se mi spíš zdá, že to nějak robotLoader nemůže najít.. zkusil bych ty service posunout před robotLoader, vydumpovat, co má robotLoader načtený, ale to už vařím z vody…

Editoval 22 (30. 6. 2011 15:48)