私の問題は、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}
質問:
- セキュリティ コードの部分は適切に記述されていますか? 何か残っていますか?
- エンティティに何かを追加する必要がありますか?