Я пытаюсь выяснить, находится ли пользователь в защищенном брандмауэре.
security.yml:
firewalls: non_secure_area: pattern: ^/ anonymous: true secure_area: pattern: ^/admin form_login: #etc. logout: #etc.
Поэтому мне нужно знать, находится ли пользователь в защищенной части сайта «secure_area».
Я использовал это, но, конечно, это только говорит мне, что кто-то «вошел в систему» и на странице HTTPS. Должен быть лучший способ:
if( $request->isSecure() && $securityContext->isGranted('IS_AUTHENTICATED_REMEMBERED') ) { }
Вы можете получить ключ безопасности и ключ доступа к нему.
$token = $securityContext->getToken(); $providerKey = $token->getProviderKey(); // secured_area
Не забудьте проверить, что токен существует, а не экземпляр AnonymousToken
Если вы используете что-то, что является ContainerAware
, вы можете получить Request
, а затем URI [ см. Docs ]:
$request = $this->container->get('request'); $uri = $request->getUri();
Затем вы можете проверить такую строку в /admin
по своему усмотрению.