我正在开展一个项目,其中一部分网站是安全的。 auth用户的凭据存储在QuickBase(带有自定义API的在线数据库)中,密码使用自定义哈希进行加密。
有人可以给我一个高级别的参与,我需要构建和实现哪些类来支持从Web服务验证这些用户并使用我自己的密码哈希机制?
这是我的security.yml:
security:
firewalls:
secured_area:
pattern: ^/account
provider: quickbase_users
form_login:
login_path: /login
check_path: /login_check
access_control:
- { path: ^/admin, roles: ROLE_ADMIN }
providers:
quickbase_users:
id: quickbase_user_provider
encoders:
Symfony\Component\Security\Core\User\User: plaintext
以下是我的路线:
login:
pattern: /login
defaults: { _controller: JMLWebsiteBundle:Security:login }
login_check:
pattern: /login_check
我目前在/ login:
提交用户/通行证后收到此错误Unable to find the controller for path "/login_check". Maybe you forgot to add the matching route in your routing configuration?
答案 0 :(得分:2)
Symfony\Component\Security\Core\User\UserInterface
的用户类。创建自定义编码器服务:
Symfony\Component\Security\Core\Encoder\PasswordEncoderInterface
在security.yml
:
security:
encoders:
MyCustomBundle\Entity\User: # Class/interface from point #1
id: my.encoder.service # Service id from point #2.1
创建自定义用户提供程序:
Symfony\Component\Security\Core\User\UserProviderInterface
在security.yml
:
security:
[...]
providers:
my_custom_user_provider:
id: my.user_provider.service # Service id from point #3.1
查看FOSUserBundle以查看自定义用户提供程序的实施示例。