【发布时间】:2017-12-13 21:35:03
【问题描述】:
早安,
主要是我想保护以/api/internal 开头的网址的所有呼叫。
以此路径开头的所有端点仅用于内部调用,例如在 ajax 搜索框中。所以当我错的时候纠正我,但我认为通过access_roles中的host定义来保护它是个好主意
我用下面的 security.yml 试了一下
security:
role_hierarchy:
ROLE_myproject_USER: ROLE_USER
ROLE_TEAMMANAGER: ROLE_USER
ROLE_ADMIN: [ROLE_TEAMMANAGER]
providers:
dashboard_users:
ldap:
service: myproject.ldap
# my ldap config
custom_user_provider:
id: myproject.factory.scale_user
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
api_internal:
pattern: ^/api/internal
security: true
host: myproject.dev
api_doc:
pattern: ^/api/doc
security: false
api_login:
pattern: ^/api/login
stateless: true
anonymous: true
api:
pattern: ^/api
stateless: true
provider: custom_user_provider
guard:
authenticators:
- myproject.api_login_authenticator
main:
anonymous: ~
form_login_ldap:
login_path: myproject_login
check_path: myproject_login
service: myproject.ldap
dn_string: 'Verbund\{username}'
logout:
path: myproject_logout
target: /
access_control:
- { path: ^/api/internal, host: myproject.dev }
但我得到这个错误:
InvalidConfigurationException in SecurityExtension.php line 481:
No authentication listener registered for firewall "api_internal".
附加信息:在这个项目中有 3 个不同的部分:
- /api/internal/**** - 只能从网站本身访问
- /api/ - 应该可以通过 REST 访问,通过 JWTToken 保护
- 网站本身 - 通过表单登录和 LDAP 保护
感谢您提供的任何帮助。
最大
【问题讨论】: