小编Tej*_*sai的帖子

Symfony2:根据路径检查用户身份验证

在Symfony2中,是否可以检查用户是否经过身份验证以访问他请求的URl.我想要做的是,我不想让登录用户返回注册或登录或恢复密码页面.

这是我的security.yml:

    access_control:
    - { path: ^/signup/, roles: IS_AUTHENTICATED_ANONYMOUSLY && !IS_AUTHENTICATED_FULLY}
    - { path: ^/register/, roles: IS_AUTHENTICATED_ANONYMOUSLY && !IS_AUTHENTICATED_FULLY}
    - { path: ^/recover/, roles: IS_AUTHENTICATED_ANONYMOUSLY && !IS_AUTHENTICATED_FULLY}
Run Code Online (Sandbox Code Playgroud)

但这显示,访问被拒绝的页面给当前用户.所以我认为如果我可以通过检查他是否被允许将用户重定向到主页是很好的.我可以通过提供用户在监听器中进行身份验证的路径来检查吗?

    public function onKernelResponse(FilterResponseEvent $event)
    {
     $request = $event->getRequest();
     $path = $request->getPathInfo();

     if($this->container->get('security.context')->getToken() != null) {
       // To check if user is authenticated or anonymous
       if( ($this->container->get('security.context')->getToken() instanceof UsernamePasswordToken) &&
        ($this->container->get('security.context')->isGranted('IS_AUTHENTICATED_FULLY') == true) ) {
         // HOW TO CHECK PATH ?
        // set response to redirect to home page
      }
    }
  }
Run Code Online (Sandbox Code Playgroud)

php authentication symfony

6
推荐指数
1
解决办法
4246
查看次数

Symfony 2:验证控制台命令参数

我正在创建一个命令来从文件生成帐户.在命令中,我已经通过了一些论点.

   $this
  ->setName('batch:create')
  ->setDescription('xyz')
  ->setHelp('xyz')
  ->addArgument('account-id', InputArgument::REQUIRED, "Set the account id.")
  ->addArgument('name', InputArgument::REQUIRED, "Set the account name.");
Run Code Online (Sandbox Code Playgroud)

我只是在考虑是否有任何方法可以检查传递的参数类型.现在我正在检查它,

   if (is_numeric($input->getArgument('account-id'))) {
    // ....
   }
Run Code Online (Sandbox Code Playgroud)

无论如何我可以创建一个检查类型的验证器,我只需要调用验证功能.

   if ($input->validate() === false) {
     // show error message and return.
   }
Run Code Online (Sandbox Code Playgroud)

console symfony

6
推荐指数
1
解决办法
5365
查看次数

禁用登录 Symfony2

这个问题以前可能有人问过。我已经搜索了答案,但我还没有找到我想要的。

在 Symfony 2.3 中,有没有办法针对特定请求禁用记录器?我的意思是,我正在为我的项目使用 SOAP 服务。当我发送登录请求时,用户名和密码作为纯文本直接转储到日志文件中。有没有办法停止记录此类特定请求?

例如,当我发送登录请求时,记录器应该被禁用,但对于所有其他请求,它会再次工作。这可能吗?

symfony

4
推荐指数
1
解决办法
9986
查看次数

标签 统计

symfony ×3

authentication ×1

console ×1

php ×1