小编ant*_*ony的帖子

Symfony2 - 退出一个防火墙

我的Symfony2项目中有两个防火墙,"admin"和"client".它们都使用相同的实体提供者.

我遇到的问题是,当我退出一个防火墙时,我也会退出另一个防火墙.我不希望这种情况发生.

我的实施或策略是否有问题.我确实想过拥有一个防火墙并通过用户角色管理对管理员和客户区的访问.但是,这并不能避免我上面描述的注销场景.

下面是我的security.yml(有点简化).

    admin:
        pattern: ^/admin
        form_login:
            provider:      acme_userbundle
            login_path:    admin_login
            check_path:    admin_security_check
        logout:
            path:   admin_logout
            target: admin_login
        anonymous: false

    client:
        pattern: ^/client
        form_login:
            provider:      acme_userbundle
            login_path:    client_login
            check_path:    client_security_check
        logout:
            path:   client_logout
            target: client_login
        anonymous: false
Run Code Online (Sandbox Code Playgroud)

security authentication firewall symfony

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

参数未提供给服务

我的验证器服务未提供给验证器.我收到一个错误:"警告:我的\ Bundle\Validator\Constraints\MyCustomValidator :: __ construct()......缺少参数1"

这是我的services.yml

// My\Bundle\Resources\config\services.yml
services:
    my.validator.service:
        class: My\Bundle\Validator\Constraints\MyCustomValidator
        arguments: [ @doctrine.orm.entity_manager ]
Run Code Online (Sandbox Code Playgroud)

这是我的验证器类:

// My\Bundle\Validator\Constraints\MyCustomValidator
namespace My\Bundle\Validator\Constraints;

use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\ConstraintValidator;
use Symfony\Component\DependencyInjection\ContainerInterface as Container;
use Doctrine\ORM\EntityManager;

class MyCustomValidator extends ConstraintValidator
{
    private $em;

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

    public function validate($value, Constraint $constraint)
    {
        // Do something
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的validation.yml

// My\Bundle\Resources\config\validation.yml
My\Bundle\Entity\Page:
    properties:
        name:
            - NotBlank: ~
            - My\Bundle\Validator\Constraints\MyCustom: ~
Run Code Online (Sandbox Code Playgroud)

这是我的Constraint课程

namespace My\Bundle\Validator\Constraints;

use Symfony\Component\Validator\Constraint;

class MyCustom extends Constraint
{
    public …
Run Code Online (Sandbox Code Playgroud)

symfony

2
推荐指数
1
解决办法
1692
查看次数

标签 统计

symfony ×2

authentication ×1

firewall ×1

security ×1