Php symfony跨不同主机模拟
我试图在Symfony中模拟不同的用户,但与其他示例不同,在我的例子中,不仅是提供者不同,主机也不同Php symfony跨不同主机模拟,php,symfony,impersonation,Php,Symfony,Impersonation,我试图在Symfony中模拟不同的用户,但与其他示例不同,在我的例子中,不仅是提供者不同,主机也不同 firewalls: admin: pattern: ^/ host: "%host_admin%" provider: admin [...] switch_user: role: ROLE_ADMIN provider: client #host: "%host_public%"
firewalls:
admin:
pattern: ^/
host: "%host_admin%"
provider: admin
[...]
switch_user:
role: ROLE_ADMIN
provider: client
#host: "%host_public%" <-- tried this.. does not work
context: cmb_context
client:
pattern: ^/
host: "%host_public%"
provider: client
[...]
switch_user:
role: ROLE_ADMIN
provider: client
context: cmb_context
防火墙:
管理员:
模式:^/
主机:“%host\u admin%”
提供者:管理员
[...]
交换机用户:
角色:角色\管理员
提供者:客户端
#主机:“%host\u public%”使用chainUserProvider
可以将一个或多个用户提供程序添加到一起,以便从这些多个源获取用户。请注意,将提供程序添加到ChainUserProvider的顺序很重要:一旦找到用户,它将检查该用户,即使该用户的凭据失败
parameters:
chain_providers: "mydatabase1,mydatabase2"
security:
providers:
mydatabase1:
entity:
class: My\UserBundle\Entity\Admin
property: username
mydatabase2:
entity:
class: My\UserBundle\Entity\Customer
property: username
my_chain:
chain:
providers: %chain_providers%
chainUserProvider
允许您将一个或多个用户提供程序添加到一起,以便可以从这些多个源获取用户。请注意,将提供程序添加到ChainUserProvider的顺序很重要:一旦找到用户,它将检查该用户,即使该用户的凭据失败
parameters:
chain_providers: "mydatabase1,mydatabase2"
security:
providers:
mydatabase1:
entity:
class: My\UserBundle\Entity\Admin
property: username
mydatabase2:
entity:
class: My\UserBundle\Entity\Customer
property: username
my_chain:
chain:
providers: %chain_providers%
谢谢@Mohamed的回答。我遇到的问题是无法在防火墙中提取实体数据,我甚至可以在页面底部的symfony开发栏(其他公共实体之一)中看到正确的用户名;但是能够在不同的主机上作为同一个实体登录(最初我在管理主机上,我想在客户机主机上作为客户机登录)…谢谢@Mohamed的回答。我遇到的问题是无法在防火墙中提取实体数据,我甚至可以在页面底部的symfony开发栏(其他公共实体之一)中看到正确的用户名;但是能够在不同的主机上作为同一个实体登录(最初我在管理主机上,我想在客户机主机上作为客户机登录)…您好@rrubiorr81,您找到解决方案了吗?我面临着同样的问题,我想我没有@NuryagdyMustapayev。。最后做了一些不同的事情。如果可行,仍然好奇;)你好@rrubiorr81,你找到解决办法了吗?我面临着同样的问题,我想我没有@NuryagdyMustapayev。。最后做了一些不同的事情。如果可行,仍然好奇;)