मैं सिम्फनी 2 में kernel.request
ईवेंट के लिए मूल श्रोता लिखने की कोशिश कर रहा हूं। सेवा परिभाषा बहुत सरल है और टिप्पणियां JMSDiExtraBundle से आती हैं।प्रमाणीकरण टोकन हमेशा symfony 2 में kernel.request घटना में शून्य है?
समस्याओं कि $context->getToken()
हमेशा अशक्त भी उपयोगकर्ता पूरी तरह से प्रमाणित है है:
/**
* @Service("request.set_messages_count_listener")
*
*/
class RequestListener
{
/**
* @var \Symfony\Component\DependencyInjection\ContainerInterface
*/
private $container;
/**
* @InjectParams({"container" = @Inject("service_container")})
*
*/
public function __construct(ContainerInterface $container)
{
$this->container = $container;
}
/**
* @Observe("kernel.request", priority = 255)
*/
public function onKernelRequest(GetResponseEvent $event)
{
$context = $this->container->get('security.context');
var_dump($context->getToken()); die();
}
}
मुझे लगता है कि मेरी सुरक्षा सेटअप ठीक काम कर रहा है। तब समस्या क्या हो सकती है?
secured_area:
pattern: ^/app/
switch_user: true
form_login:
check_path: /app/login_check
login_path: /app/login
default_target_path: /app/dashboard
always_use_default_target_path: true
logout:
path: /demo/secured/logout # TODO
target: /demo/ # TODO
access_control:
- { path: ^/app/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/app/users, roles: ROLE_MNG_USERS }
- { path: ^/app/messages, roles: ROLE_MNG_USERS }
- { path: ^/app/roles, roles: ROLE_MNG_PACKAGES_FEATURES }
- { path: ^/app/packages, roles: ROLE_MNG_PACKAGES_FEATURES }
- { path: ^/app/, roles: ROLE_USER }
धन्यवाद, अब काम करता है। – gremo
यहां देखें https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Security/Http/Firewall.php#L93, धन्यवाद। :) – umpirsky