В documentation есть много примеров способов управления доступом для определенных маршрутов.Symfony 2 - access_control vs isGranted() для управления доступом в контроллере
Там у меня access_control
блок в security.yml
, где я описываю, какие страницы могут быть доступны какой роли:
security:
access_control:
- { path: ^/$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/trainee, roles: ROLE_TRAINEE }
- { path: ^/university, roles: ROLE_UNIVERSITY_PROFESSOR }
- { path: ^/company, roles: ROLE_COMPANY_TUTOR }
Теперь эти маршруты могут быть доступны только с этими ROLES
и никто другой.
В этих маршрутах у меня есть некоторые формы, и мне интересно, достаточно ли для этого вида access_control
другим ROLE
?
Я видел несколько примеров в Интернете, где люди Puting isGranted()
в форме представления:
if ($form->isValid()) {
if (!$authorizationChecker->isGranted('ROLE_TRAINEE')) {
throw new AccessDeniedException();
}
// ...
}
Но снова здесь, я не уверен, что они защищают эти маршруты из access_control
или только с внутренней стороны контроллера с isGranted()
.
Может кто-нибудь объяснить разницу, и если я также должен защищать формы с помощью isGranted()
, то даже маршруты защищены от access_control
?
Я думал, что если вы не можете получить доступ к этой странице может быть можно каким-либо образом отправить форму с использованием JS из-за пределов платформы? Или это то, о чем я не должен беспокоиться? Я не знаю, как маршруты защищены. –
Независимо от того, как отправляются данные te, если он отправлен в конечную точку, которая находится за правилом контроля доступа, будет применяться правило управления доступом –