![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 350 Pomógł: 31 Dołączył: 23.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
Cześć.
Próbuje rozgryźć w jaki sposób działa autoryzacja (logowanie w "FOSUserBundle"). Kontroler SecurityController.php wykorzystuje w tym celu trzy akcje: loginAction, renderLogin, checkAction. Akcja "loginAction" to właściwie przygotowanie to wyświetlenia formularza z użyciem renderLogin - nigdzie tutaj nie ma konkretów; szukam linijek, które przedstawią mi bezpośrednie działanie autoryzacji (tj: walidacja pól formularza, ewentualne zwrócenie błędów walidacji, sam proces logowania (poprawna, błędna autoryzacja). Routing formularza (parametr "action" w formularzu) kieruje na akcje "checkAction" - choć wydaje mi się ona trochę bezużyteczna (?), ponieważ rzucamy od razu wyjątkiem. Mam skonfigurowany security.yml gdzie parametr "form_login" kieruje według ustawień: Kod firewalls: main: pattern: ^/ form_login: provider: fos_userbundle csrf_provider: form.csrf_provider logout: true anonymous: true Jednak niewiele mi mówi samo hasło "provider" - więc tego kroku dalej nie zagłębiałem, więc jestem w kropce. Wydaje mi się, że cały ten moduł/vendor opiera się na eventach - i w przypadku wykrycia danej akcji (rejestracja, logowanie, zapomniałem hasła, itd). Folder EventListener posiada plik AuthenticationListener.php, który posiada akcje authenticate, ale nie mogę nigdzie w kontrolerach/plikach konfiguracynych znaleźć wywołania ani tego eventu. Więc podsumowując: 1) Pliki konfiguracyjne, parametr "provider" - za co dokładnie odpowiada? Parametr, który określa jaka klasa, bundle będzie używana dla danego modułu (?) - w tym przypadku "form_login" ? 2) Najważniejsze: w którym momencie jest wywoływana akcja/funkcja authenticate z EventListenera? |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Nieautoryzowani Postów: 2 249 Pomógł: 305 Dołączył: 2.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Do poczytania: http://symfony.com/doc/current/book/security.html. Tam naprawdę wszystko jest piękne opisane, w jaki sposób działa komponent Security. FOSUserBundle jest tylko interfejsem zarządzania użytkownikami (rejestracja, etc), za wszystko inne odpowiada ww. komponent.
Na to też warto rzucić okiem: http://symfony.com/doc/current/components/...y/firewall.html. -------------------- Google knows the answer...
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 09:32 |