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. を実装するUserクラスを作成しますSymfony\Component\Security\Core\User\UserInterface
  2. カスタムエンコーダサービスを作成します。

    1. を実装するサービスを作成するSymfony\Component\Security\Core\Encoder\PasswordEncoderInterface
    2. そのサービスをUserクラスのエンコーダーとして登録します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 に答える