我需要使用两种身份验证协议为我的网站创建一个门户网站。
因此,当用户到达主页时,他可以选择这两种身份验证系统中的一种。
我对symfony2的安全性不是很熟练,所以我按照Symfony文档编写了这段代码:
#Security.yml
security:
encoders:
Symfony\Component\Security\Core\User\User: plaintext
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
firewalls:
secure_area:
pattern: ^/
anonymous: ~
context: form_auth
form_login:
login_path: /form_login
check_path: /form_login_check
logout:
path: /logout
target: /riac
access_control:
- { path: ^/riac/admin, roles: ROLE_ADMIN }
providers:
in_memory:
memory:
users:
bob: { password: bob, roles: 'ROLE_ADMIN' }
main:
entity: { class: Riac\HomeBundle\Entity\Login, property: username }
这个适用于登录/密码方法。
要创建CAS协议,我找到了BeSimpleSsoAuthBundle,但......问题......
所以我已经阅读了安装文档来实现这个,我已经成功单独运行它(没有登录/密码协议)。现在我要一次实现这两个协议,我已经编写了这段代码:
security:
encoders:
Symfony\Component\Security\Core\User\User: plaintext
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
firewalls:
cas_secure_area:
pattern: ^/
anonymous: ~
context: cas_auth
trusted_sso:
manager: admin_sso
login_action: false
logout_action: false
login_path: /cas_login
check_path: /cas_login_check
create_users: true
created_users_roles: [ROLE_USER, ROLE_ADMIN]
check_path: /form_login_check
logout:
path: /logout
target: /riac
secure_area:
pattern: ^/
anonymous: ~
context: form_auth
form_login:
login_path: /form_login
check_path: /form_login_check
logout:
path: /logout
target: /riac
access_control:
- { path: ^/riac/admin, roles: ROLE_ADMIN }
providers:
in_memory:
memory:
users:
bob: { password: bob, roles: 'ROLE_ADMIN' }
main:
entity: { class: Riac\HomeBundle\Entity\Login, property: username }
但它没有工作(注销问题,找不到login_check,难以确定使用哪种方法)。
所以我认为这不是最好的方法,但我不知道这是怎么回事。你能帮帮我吗?