1

我正在开展一个项目,其中网站的一部分是安全的。进行身份验证的用户的凭据存储在 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?
4

1 回答 1

2
  1. 创建实现Symfony\Component\Security\Core\User\UserInterface.
  2. 创建自定义编码器服务:

    1. 创建一个实现的服务Symfony\Component\Security\Core\Encoder\PasswordEncoderInterface
    2. 将该服务注册为您的用户类的编码器security.yml

      security:
          encoders:
              MyCustomBundle\Entity\User:  # Class/interface from point #1
                  id: my.encoder.service   # Service id from point #2.1
      
  3. 创建自定义用户提供程序:

    1. 创建一个实现的服务Symfony\Component\Security\Core\User\UserProviderInterface
    2. 将该服务注册为用户提供者security.yml

      security:
          [...]
      
          providers:
              my_custom_user_provider:
                  id: my.user_provider.service # Service id from point #3.1
      

查看FOSUserBundle以查看自定义用户提供程序的实现示例。

于 2012-11-07T15:19:46.773 回答