Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Symfony] FosUserBundle, brak routingu do logowania
emillo91
post 17.05.2018, 19:10:07
Post #1





Grupa: Zarejestrowani
Postów: 89
Pomógł: 7
Dołączył: 29.03.2012

Ostrzeżenie: (0%)
-----


Witam. Wczoraj zainstalowałem Bundla FosUserBundle w wersji 2.1.2 oraz według instrukcji ze strony Symfony.com zintegrowałem tegoż bundla z frameworkiem. Problem pojawił się w momencie gdy wpisuję adres 127.0.0.1:8000/login. Panel rejestracji działa i mogę dodawać użytkowników lecz nie ma routingu dla strony logowania i nie wiem gdzie szukać rozwiązania. Błąd jaki się pojawia to:
CODE
No route found for "GET /login/"

natomiast jak wpiszę adres bez slasha na końcu to wyskakuje komunikat:
CODE
AppBundle\Entity\auction object not found.


Wszystko robiłem metodą kopiuj-> wklej z instrukcji symfony. Pliki które konfigurowałem wyglądają tak:
app/AppKernel:
CODE
  1. $bundles = [
  2. new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
  3. new Symfony\Bundle\SecurityBundle\SecurityBundle(),
  4. new Symfony\Bundle\TwigBundle\TwigBundle(),
  5. new Symfony\Bundle\MonologBundle\MonologBundle(),
  6. new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),
  7. new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
  8. new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
  9. new FOS\UserBundle\FOSUserBundle(),
  10. new AppBundle\AppBundle(),
  11. ];




app/config/security.yml
CODE
  1. security:
  2. encoders:
  3. FOS\UserBundle\Model\UserInterface: bcrypt
  4.  
  5. role_hierarchy:
  6. ROLE_ADMIN: ROLE_USER
  7. ROLE_SUPER_ADMIN: ROLE_ADMIN
  8.  
  9. providers:
  10. fos_userbundle:
  11. id: fos_user.user_provider.username
  12.  
  13. firewalls:
  14. main:
  15. pattern: ^/
  16. form_login:
  17. provider: fos_userbundle
  18. csrf_token_generator: security.csrf.token_manager
  19.  
  20. logout: true
  21. anonymous: true
  22.  
  23. access_control:
  24. - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
  25. - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
  26. - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
  27. - { path: ^/admin/, role: ROLE_ADMIN }


app/config/config.yml
CODE
  1. fos_user:
  2. db_driver: orm
  3. firewall_name: main
  4. user_class: AppBundle\Entity\User
  5. from_email:
  6. address: "%mailer_user%"
  7. sender_name: "%mailer_user%"


CODE

  1. app:
  2. resource: '@AppBundle/Controller/'
  3. type: annotation
  4.  
  5. fos_user:
  6. resource: "@FOSUserBundle/Resources/config/routing/all.xml"



Klasy dostępu "User" nie wkleiłem bo nie chodzi o łączenie z bazą danych
Go to the top of the page
+Quote Post
ohm
post 17.05.2018, 19:19:36
Post #2





Grupa: Zarejestrowani
Postów: 473
Pomógł: 113
Dołączył: 22.12.2010

Ostrzeżenie: (0%)
-----


A masz taką klasę jak AppBundle\Entity\auction? Bo coś mi się wydaje że albo masz literówkę, albo nie masz w ogóle.
Go to the top of the page
+Quote Post
emillo91
post 17.05.2018, 19:31:56
Post #3





Grupa: Zarejestrowani
Postów: 89
Pomógł: 7
Dołączył: 29.03.2012

Ostrzeżenie: (0%)
-----


Tak. Klasa "auction" istnieje i jej nazwa zaczyna się od małej litery.
Go to the top of the page
+Quote Post
Pyton_000
post 17.05.2018, 19:39:32
Post #4





Grupa: Zarejestrowani
Postów: 7 303
Pomógł: 1288
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Wywal tego bundla i zrób sobie logowanie na komponentach symfony. Jest nawet w dokumentacji instrukcja jak to zrobić. FOSUser to straszna kobyła której zdecydowanie nie potrzebujesz.
Go to the top of the page
+Quote Post
emillo91
post 17.05.2018, 20:11:05
Post #5





Grupa: Zarejestrowani
Postów: 89
Pomógł: 7
Dołączył: 29.03.2012

Ostrzeżenie: (0%)
-----


Wiem, że nie potrzebuję ale opieram się o kurs, w którym gościu na podstawie Bundla tłumaczy jak zabezpieczyć stronę przed dostępem do akcji i dalsza część kursu to zabezpieczanie. Może macie pomysł jak mogę zdiagnozować problem? Profiler pokazuje że istnieje routing do "/login". Jeżeli się nie uda to faktycznie zrezygnuję i będę ręcznie wszystko klepać sad.gif
Go to the top of the page
+Quote Post
Pyton_000
post 17.05.2018, 20:17:16
Post #6





Grupa: Zarejestrowani
Postów: 7 303
Pomógł: 1288
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Jak już chcesz FOS to przeczytaj to https://symfony.com/doc/current/bundles/FOS...ndle/index.html
Go to the top of the page
+Quote Post
ohm
post 17.05.2018, 22:42:57
Post #7





Grupa: Zarejestrowani
Postów: 473
Pomógł: 113
Dołączył: 22.12.2010

Ostrzeżenie: (0%)
-----


Cytat(emillo91 @ 17.05.2018, 20:31:56 ) *
Tak. Klasa "auction" istnieje i jej nazwa zaczyna się od małej litery.

A namespace'y sie zgadzają? Położenia plików? Bo ewidentnie masz jakiś problem z tym auction, bez konkretnych kawałków kodu i danych z profilera ciężko cokolwiek powiedzieć.

A i jeszcze jedna kwestia, z jakiej wersji symfony korzystasz?

Ten post edytował ohm 17.05.2018, 22:44:11
Go to the top of the page
+Quote Post
PawelC
post 18.05.2018, 07:02:58
Post #8





Grupa: Zarejestrowani
Postów: 1 142
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

Ostrzeżenie: (0%)
-----


FOS to za duża kobyła według mnie smile.gif

Zobacz to, oczywiście wybierz swoją wersję SF:
- https://symfony.com/doc/3.4/security/entity_provider.html
- https://symfony.com/doc/3.4/security/form_login_setup.html

I to w zupełności Ci wystarczy do zrobienia autoryzacji, bez pomocy FOS. Wszystko jest dokładnie opisane, więc nie musisz sam za wiele kombinować. I taka drobna uwaga, nazwy klas zaczynaj od dużej litery.

Ten post edytował PawelC 18.05.2018, 07:04:25


--------------------
Warsztat: PHP, MySQL, Postgresql, MongoDB, Symfony Framework, Jira, GIT, Swagger, PHPUnit, REST Api
System operacyjny: Linux Arch
Edytor PHP: PHPStorm + Symfony Plugin
Go to the top of the page
+Quote Post
emillo91
post 18.05.2018, 12:16:46
Post #9





Grupa: Zarejestrowani
Postów: 89
Pomógł: 7
Dołączył: 29.03.2012

Ostrzeżenie: (0%)
-----


Posiadam Symfony 3.3. Jak utworzyłem nowy projekt oparty o symfony 3.4 to wszystko działa. Może namieszałem coś w plikach
Go to the top of the page
+Quote Post
PawelC
post 18.05.2018, 12:45:05
Post #10





Grupa: Zarejestrowani
Postów: 1 142
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

Ostrzeżenie: (0%)
-----


Możliwe, że coś pomieszałeś biggrin.gif ale na przyszłość napisz sobie własny system autoryzacji na podstawie tego co napisałem smile.gif Sporo się nauczysz na przyszłość.


--------------------
Warsztat: PHP, MySQL, Postgresql, MongoDB, Symfony Framework, Jira, GIT, Swagger, PHPUnit, REST Api
System operacyjny: Linux Arch
Edytor PHP: PHPStorm + Symfony Plugin
Go to the top of the page
+Quote Post
emillo91
post 18.05.2018, 18:01:52
Post #11





Grupa: Zarejestrowani
Postów: 89
Pomógł: 7
Dołączył: 29.03.2012

Ostrzeżenie: (0%)
-----


A możliwe, że bundle się ze sobą gryzą? Na razie mam zainstalowane 2 więc jutro zobaczę co jest nie tak. Odnośnie instalacji symfony w wersji 3.4 miałem sytuację, w której brakowało odniesienia do jakiegoś katalogu i musiałem to dopisać ręcznie w pliku config.yml. Może w wersji 3.3, na której się uczę też czegoś brakuje.
Go to the top of the page
+Quote Post
PawelC
post 18.05.2018, 18:52:55
Post #12





Grupa: Zarejestrowani
Postów: 1 142
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

Ostrzeżenie: (0%)
-----


Ja mam w jednym projekcie 20 bundli i nic się nie gryzie


--------------------
Warsztat: PHP, MySQL, Postgresql, MongoDB, Symfony Framework, Jira, GIT, Swagger, PHPUnit, REST Api
System operacyjny: Linux Arch
Edytor PHP: PHPStorm + Symfony Plugin
Go to the top of the page
+Quote Post
emillo91
post 19.05.2018, 21:54:59
Post #13





Grupa: Zarejestrowani
Postów: 89
Pomógł: 7
Dołączył: 29.03.2012

Ostrzeżenie: (0%)
-----


Znalazłem błąd. Miałem źle ustawiony routing . podczas tworzenia akcji mającej na celu pobranie danych z bazy ustawiłem routing na "/{id}" i fosuserbundle próbował pobrać obiekt z nieistniejącej ścieżki. Jak zamieniłem routing do tej akcji na /jakas/akcja/{id} to błąd zniknął. Mam jeszcze pytanie odnośnie mechanizmu routingu Symfony. Czy ten framework odpytuje za każdym razem wszystkie kontrolery żeby dobrać się do danej akcji?
Go to the top of the page
+Quote Post
PawelC
post Wczoraj, 09:30
Post #14





Grupa: Zarejestrowani
Postów: 1 142
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

Ostrzeżenie: (0%)
-----


Jak masz routing jako adnotacje w kontroelrze to tak. Jak masz w pliku yaml to w nim sprawdzę jaki kontroler odpowiada za dany routing.


--------------------
Warsztat: PHP, MySQL, Postgresql, MongoDB, Symfony Framework, Jira, GIT, Swagger, PHPUnit, REST Api
System operacyjny: Linux Arch
Edytor PHP: PHPStorm + Symfony Plugin
Go to the top of the page
+Quote Post
ohm
post Wczoraj, 10:22
Post #15





Grupa: Zarejestrowani
Postów: 473
Pomógł: 113
Dołączył: 22.12.2010

Ostrzeżenie: (0%)
-----


Cytat(emillo91 @ 19.05.2018, 22:54:59 ) *
Czy ten framework odpytuje za każdym razem wszystkie kontrolery żeby dobrać się do danej akcji?


http://davidbu.ch/slides/2015-12-03-symfony-routing.html#14 Luknij na prezentację. W środowisku prod wszystko jest kompilowane i optymalizowane.
https://symfony.com/blog/new-in-symfony-4-1...test-php-router - tu masz zarys nowszej wersji routera.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 21.05.2018 - 21:54