Symfony2 – определить, находится ли пользователь в защищенном брандмауэре

Я пытаюсь выяснить, находится ли пользователь в защищенном брандмауэре.

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') ) { } 

Solutions Collecting From Web of "Symfony2 – определить, находится ли пользователь в защищенном брандмауэре"

Вы можете получить ключ безопасности и ключ доступа к нему.

 $token = $securityContext->getToken(); $providerKey = $token->getProviderKey(); // secured_area 

Не забудьте проверить, что токен существует, а не экземпляр AnonymousToken

Если вы используете что-то, что является ContainerAware , вы можете получить Request , а затем URI [ см. Docs ]:

 $request = $this->container->get('request'); $uri = $request->getUri(); 

Затем вы можете проверить такую ​​строку в /admin по своему усмотрению.