after installing FOSUserBundle, now Im trying to login with user/ userpass but I still get the "Bad credentials" message. This is my security.yml:
安装FOSUserBundle后,现在我尝试使用user / userpass登录,但仍然收到“Bad credentials”消息。这是我的security.yml:
security:
encoders:
Symfony\Component\Security\Core\User\User: plaintext
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
providers:
in_memory:
users:
user: { password: userpass, roles: [ 'ROLE_USER' ] }
admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] }
fos_userbundle:
id: fos_user.user_manager
firewalls:
main:
pattern: ^/
form_login:
provider: fos_userbundle
logout: true
anonymous: true
#anonymous: ~
#http_basic:
# realm: "Secured Demo Area"
Any idea?
任何想法?
symfony 2.0.4
symfony 2.0.4
4 个解决方案
#1
20
Chain your providers like this:
像你这样链接你的提供者:
providers:
chain_provider:
providers: [in_memory, fos_userbundle]
in_memory:
users:
user: { password: userpass, roles: [ 'ROLE_USER' ] }
admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] }
fos_userbundle:
id: fos_user.user_manager
firewalls:
main:
pattern: ^/
form_login:
provider: chain_provider
logout: true
anonymous: true
switch_user: true
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
#2
5
In the firewall section you're using the wrong provider: fos_userbundle instead of in_memory. You can chain them if you want.
在防火墙部分,您使用了错误的提供程序:fos_userbundle而不是in_memory。你可以根据需要链接它们。
#3
2
In addition to a chian of Users provider, i suggest you to encode your password in your web application, you can encode by a tools online sh1 link to encode online.
除了用户提供商之外,我建议您在Web应用程序中对密码进行编码,您可以通过工具在线sh1链接进行编码以进行在线编码。
encoders:
"Symfony\Component\Security\Core\User\User":
algorithm: sha1
iterations: 1
encode_as_base64: false
"FOS\UserBundle\Model\UserInterface": sha512
providers:
chain_provider:
providers: [in_memory, fos_userbundle]
in_memory:
users:
user: { password: 45f106ef4d5161e7aa38cf6c666607f25748b6ca, roles: [ 'ROLE_USER' ] } # userpass as password
admin: { password: 74913f5cd5f61ec0bcfdb775414c2fb3d161b620, roles: [ 'ROLE_ADMIN' ] } # adminpass as password
fos_userbundle:
id: fos_user.user_manager
firewalls:
main:
pattern: ^/
form_login:
provider: chain_provider
logout: true
anonymous: true
switch_user: true
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
#4
0
Chain your providers for symfony 2.3 like this:
将您的提供商链接到symfony 2.3,如下所示:
providers:
in_memory:
users:
user: { password: userpass, roles: [ 'ROLE_USER' ] }
admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] }
fos_userbundle:
id: fos_user.user_manager
chain_provider:
chain:
providers: [in_memory, fos_userbundle]
firewalls:
main:
pattern: ^/
form_login:
provider: chain_provider
logout: true
anonymous: true
switch_user: true
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
#1
20
Chain your providers like this:
像你这样链接你的提供者:
providers:
chain_provider:
providers: [in_memory, fos_userbundle]
in_memory:
users:
user: { password: userpass, roles: [ 'ROLE_USER' ] }
admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] }
fos_userbundle:
id: fos_user.user_manager
firewalls:
main:
pattern: ^/
form_login:
provider: chain_provider
logout: true
anonymous: true
switch_user: true
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
#2
5
In the firewall section you're using the wrong provider: fos_userbundle instead of in_memory. You can chain them if you want.
在防火墙部分,您使用了错误的提供程序:fos_userbundle而不是in_memory。你可以根据需要链接它们。
#3
2
In addition to a chian of Users provider, i suggest you to encode your password in your web application, you can encode by a tools online sh1 link to encode online.
除了用户提供商之外,我建议您在Web应用程序中对密码进行编码,您可以通过工具在线sh1链接进行编码以进行在线编码。
encoders:
"Symfony\Component\Security\Core\User\User":
algorithm: sha1
iterations: 1
encode_as_base64: false
"FOS\UserBundle\Model\UserInterface": sha512
providers:
chain_provider:
providers: [in_memory, fos_userbundle]
in_memory:
users:
user: { password: 45f106ef4d5161e7aa38cf6c666607f25748b6ca, roles: [ 'ROLE_USER' ] } # userpass as password
admin: { password: 74913f5cd5f61ec0bcfdb775414c2fb3d161b620, roles: [ 'ROLE_ADMIN' ] } # adminpass as password
fos_userbundle:
id: fos_user.user_manager
firewalls:
main:
pattern: ^/
form_login:
provider: chain_provider
logout: true
anonymous: true
switch_user: true
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
#4
0
Chain your providers for symfony 2.3 like this:
将您的提供商链接到symfony 2.3,如下所示:
providers:
in_memory:
users:
user: { password: userpass, roles: [ 'ROLE_USER' ] }
admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] }
fos_userbundle:
id: fos_user.user_manager
chain_provider:
chain:
providers: [in_memory, fos_userbundle]
firewalls:
main:
pattern: ^/
form_login:
provider: chain_provider
logout: true
anonymous: true
switch_user: true
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false