![](/img/trans.png)
[英]Did you forget to run "composer require symfony/security-core"? Unknown function "is_granted" in "xxx.twig"
[英]Symfony security is granted
我的控制器帶有注釋* @Security("is_granted('PERM_MODULE_OUTBOUND_INVOICES_READ')")
,我在此控制器中為某些操作編寫了測試,創建了用戶和loginIn,並且為此操作調用rout時出錯
Expression "is_granted('PERM_MODULE_OUTBOUND_INVOICES_READ')" denied access.
當向用戶PERM_MODULE_OUTBOUND_INVOICES_READ
添加角色時,訪問仍然被拒絕
當評論tgis並在操作中檢查當前用戶是否被授予為true
/**
* @Route("/manage/new_outbound_invoices", name="new_outbound_invoices")
*/
public function outBoundInvoiceListsAction(Request $request)
{
$check = $this->get('security.authorization_checker')
->isGranted('PERM_MODULE_OUTBOUND_INVOICES_READ', $this->getUser());
但是拒絕了安全注釋訪問,為什么不理解這是我的測試
$user = $this->user;
$this->logIn($user);
//$t = $this->getContainer()->get('security.context')->getToken(); try get token and have null, but in action have user from session
$this->client->setServerParameter('HTTP_HOST', 'erp.houseoptima.fi.local');
$crawler = $this->client->request('GET', '/economy/manage/new_outbound_invoices');
此功能用於登錄
public function logIn(User $user)
{
$session = $this->client->getContainer()->get('session');
$firewall = 'main';
$token = new UsernamePasswordToken($user, null, $firewall, $user->getRoles());
$session->set('_security_'.$firewall, serialize($token));
$session->save();
$cookie = new Cookie($session->getName(), $session->getId());
$this->client->getCookieJar()->set($cookie);
}
這種安全性有什么問題? 注釋錯誤403取消200,並且在准予簽入操作時,用戶具有true
您需要傳遞User
對象
/**
* @Security("is_granted('PERM_MODULE_OUTBOUND_INVOICES_READ', user)")
*/
public function indexAction(User $user)
{
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.