0

私の問題は、2 つの異なるユーザー タイプ "Familia" と "Doctor" を使用したいということです。security.yml を次のように構成します。

providers: 




    client_db:
        entity: 
          class: Goodday\PreditBundle\Entity\Familia
          property: email

    manager_db:
        entity: 
          class: Goodday\PreditBundle\Entity\Doctor
          property: email

問題は、Familia でログインできることですが、doctor でログインしようとすると、「Bad Credentials」が返されます。両方のエンティティが

 class Doctor implements UserInterface
 {
 public function getRoles()
{
    return array('ROLE_DOC');
}

public function getSalt()

{
    return false;
}

public function getUsername()
{
    return $this->email;
}

public function eraseCredentials()
{

}

public function equals(UserInterface $user)
{
    return $user->getUsername() == $this->getUsername();
}

これが私のセキュリティファイルです。

security:
encoders:
    Symfony\Component\Security\Core\User\User: sha512

    Goodday\PreditBundle\Entity\Familia: 
      algorithm: plaintext

    Goodday\PreditBundle\Entity\Doctor:
      algorithm: plaintext




providers: 
  chain_provider:
    chain:
      providers: [user_db, admin_db]



      user_db:
        entity: 
          class: Goodday\PreditBundle\Entity\Familia
          property: email

      admin_db:
        entity: 
          class: Goodday\PreditBundle\Entity\Doctor
          property: email

firewalls:

    secured_area:
        pattern:    ^/
        anonymous: ~
        form_login:
            check_path: /check
            login_path: /login
            always_use_default_target_path: false
            default_target_path:            /checking

            use_referer:                    false
        logout:
            path:   /logout
            target: /
        #anonymous: ~
        #http_basic:
        #    realm: "Secured Demo Area"

access_control:
    - { path: ^/familia, roles: ROLE_FAM }
    - { path: ^/doctor, roles: ROLE_DOC}

質問:

  • セキュリティ コードの部分は適切に記述されていますか? 何か残っていますか?
  • エンティティに何かを追加する必要がありますか?
4

1 に答える 1