你好我按照这个教程:http://symfony.com/doc/current/cookbook/security/entity_provider.html
My security.yml:
security:
encoders:
Symfony\Component\Security\Core\User\User: plaintext
modules\UserBundle\Entity\User:
algorithm: sha1
encode_as_base64: false
iterations: 1
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
providers:
chain_provider:
chain:
providers: [in_memory, user_db]
in_memory:
memory:
users:
test: { password: test }
user_db:
entity: { class: modulesUserBundle:User }
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
login:
pattern: ^/demo/secured/login$
security: false
login_firewall:
pattern: ^/login$
anonymous: ~
secured_area:
pattern: ^/
provider: user_db
http_basic:
realm: "Secured Demo Area"
provider: in_memory
form_login: ~
logout:
path: _demo_logout
target: _demo
#anonymous: ~
#http_basic:
# realm: "Secured Demo Area"
admin_area:
pattern: ^/admin
http_basic: ~
access_control:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/users, roles: ROLE_SUPER_ADMIN }
- { path: ^/admin, roBad credentialsles: ROLE_ADMIN }
#- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
在数据库中,我有:
用户:
(id, username, salt, password, email, is_active)
(1,'admin','123456','7c4a8d09ca3762af61e59520943dc264','admin@modules.com',1)
(2,'bruno','123456','7c4a8d09ca3762af61e59520943dc264','mail@gmail.com',1)
角色:
(id, name, role)
(1,'Admin','ROLE_ADMIN')
(2,'User','ROLE_USER')
用户角色:
(user_id, role_id)
(1,1)
(2,2)
每次我尝试用DB中的一个用户登录时,我都会得到“坏凭据”。但是,如果我使用内存中定义的“test”用户登录,没有问题
我想这是我的安全问题。但我做错了什么?
修复:
security.yml
security:
encoders:
Symfony\Component\Security\Core\User\User: plaintext
modules\UserBundle\Entity\User:
algorithm: sha1
encode_as_base64: false
iterations: 1
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
providers:
administrators:
entity: { class: modulesUserBundle:User }
firewalls:
login_firewall:
pattern: ^/login$
anonymous: ~
secured_area:
pattern: ^/
provider: administrators
form_login: ~
access_control:
- { path: ^/admin/, roles: ROLE_ADMIN }
您是如何在DB中注册此用户的?我可以看到用户的密码是纯文本的,因此我假设在登录过程中,它将密码与您的配置相匹配,并在hole process encoded pass之后!=db pass,因此无法登录。对DB密码进行编码,我相信所有这些都可以
如果您正在加载装置,请使用$user-
我想限制登录用户的登录路径, security.yml 我的登录功能: 问题是它可以工作,例如,对于/admin,只有ROLE\u admin有访问权限,ROLE\u用户号。但是/login,如果我登录或不登录,我可以访问它,在symfony2开发工具中,我看到我是匿名的,我登录了stel。。。我没有主意
我开发了一个应用程序。现在我正在尝试将twitter集成到我的应用程序中。我的问题是当我登录应用程序时,它会显示"at。 请任何人帮我谢谢... 当我尝试登录我得到了这个错误:
问题内容: 我有一个示例,尝试使用Symfony2和FOSUserBundle创建AJAX登录。我设置我自己和在我的文件。 这是课程: 这对于处理成功和失败的AJAX登录尝试都非常有用。但是,启用后-我无法通过标准表单POST方法(非AJAX)登录。我收到以下错误: 我希望自己的重写和重写仅对XmlHttpRequests(AJAX请求)执行,如果没有,则将执行交还给原始处理程序。 有没有办法做到
我正在尝试使用我的应用程序中的google帐户登录用户。当用户第一次在我的应用程序中使用google帐户登录时,我遇到了一个问题。它显示了以下错误:传递给Illumb\Auth\Guard::login()的参数1必须实现interface Illumb\Auth\UserInterface,在我的控制器中为空我有以下信息: 我知道问题出在Auth::login($user);因为插入与Auth: