php – 具有授权检查程序的Symfony kernel.response监听器

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 具有授权检查程序的Symfony kernel.response监听器脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在设置kernel.response事件,我想测试用户是否登录.

这是我的代码

services.yML

app.kernel.modal_injection:
    class: App\UserBundle\EventListener\ModalListener
    tags:
        - { name: kernel.event_listener,event: kernel.response }
    arguments:
        - @security.authorization_checker

ModalListener.PHP

<?PHP
namespace App\UserBundle\EventListener;

use Symfony\@R_126_480@\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
use Symfony\Component\HttpKernel\KernelEvents;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\Security\Core\Security;
use Symfony\Component\Security\Core\Authorization\AuthorizationChecker;


class ConnectModalListener implements EventSubscriberInterface
{
    PRotected $securityChecker;

    public function __construct( AuthorizationChecker $securityChecker )
    {
        $this->securityChecker = $securityChecker;
    }

    public function onKernelResponse( FilterResponseEvent $event )
    {
        $response = $event->getResponse();
        $request = $event->getRequest();

        if ( !$event->isMasterRequest() ) {
            return;
        }
        if ( $request->isXMlHttpRequest() ) {
            return;
        }

        if ( $this->securityChecker->isGranted( 'IS_AUTHENTICATED_REMEMBEred' ) ) {
            return;
        }

        // CODE HERE


    }

    public static function getSubscribedEvents()
    {
        return array(
            KernelEvents::RESPONSE => array( 'onKernelResponse',0 ),);
    }
}

我的问题是,在检查用户IS_AUTHENTICATED_REMEMBER是否在我的页面上提供css和js文件时出现错误500(意味着没有js或css).有没有办法收费?最终在那些上过滤kernel.response事件?

解决方法

标记静态文件中为null,因此isGranted返回错误500.所以我必须在之前运行检查:

if ( $this->tokenStorage->getToken() !== null
        && $this->securityChecker->isGranted( 'IS_AUTHENTICATED_REMEMBERED' ) ) {
    return;
}

脚本宝典总结

以上是脚本宝典为你收集整理的php – 具有授权检查程序的Symfony kernel.response监听器全部内容,希望文章能够帮你解决php – 具有授权检查程序的Symfony kernel.response监听器所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。