Symfony FosUserBundle access_control 安全管理员登录
Symfony FosUserBundle access_control security admin login
这是我的安全文件
# app/config/security.yml
security:
encoders:
FOS\UserBundle\Model\UserInterface: bcrypt
role_hierarchy:
ROLE_CONDIDAT: ROLE_VISITEUR
ROLE_RECRUTEUR: ROLE_CONDIDAT
ROLE_ADMIN : ROLE_RECRUTEUR
providers:
fos_userbundle:
id: fos_user.user_provider.username
firewalls:
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_token_generator: security.csrf.token_manager
login_path: fos_user_security_login
check_path: fos_user_security_check
# if you are using Symfony < 2.8, use the following config instead:
# csrf_provider: form.csrf_provider
logout: true
anonymous: true
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/, role: ROLE_ADMIN }
这是我的路由应用程序
co_manager_back:
resource: "@CoManagerBackBundle/Resources/config/routing.yml"
prefix: /admin
co_manager_front:
resource: "@CoManagerFrontBundle/Resources/config/routing.yml"
prefix: /
co_manager_user:
resource: "@CoManagerUserBundle/Resources/config/routing.yml"
prefix: /
_liip_imagine:
resource: "@LiipImagineBundle/Resources/config/routing.xml"
fos_user:
resource: "@FOSUserBundle/Resources/config/routing/all.xml"
prefix: /
我的问题是当我输入:
localhost/project/admin
我想显示连接到管理员后台的登录表单
但没有显示它直接连接到管理员
我使用 fosUserBundle
终于找到问题了:
问题是我正在使用 jms_i18n_routing 翻译和国际化包
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/%locale%/admin, roles: ROLE_ADMIN }
这是我的安全文件
# app/config/security.yml
security:
encoders:
FOS\UserBundle\Model\UserInterface: bcrypt
role_hierarchy:
ROLE_CONDIDAT: ROLE_VISITEUR
ROLE_RECRUTEUR: ROLE_CONDIDAT
ROLE_ADMIN : ROLE_RECRUTEUR
providers:
fos_userbundle:
id: fos_user.user_provider.username
firewalls:
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_token_generator: security.csrf.token_manager
login_path: fos_user_security_login
check_path: fos_user_security_check
# if you are using Symfony < 2.8, use the following config instead:
# csrf_provider: form.csrf_provider
logout: true
anonymous: true
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/, role: ROLE_ADMIN }
这是我的路由应用程序
co_manager_back:
resource: "@CoManagerBackBundle/Resources/config/routing.yml"
prefix: /admin
co_manager_front:
resource: "@CoManagerFrontBundle/Resources/config/routing.yml"
prefix: /
co_manager_user:
resource: "@CoManagerUserBundle/Resources/config/routing.yml"
prefix: /
_liip_imagine:
resource: "@LiipImagineBundle/Resources/config/routing.xml"
fos_user:
resource: "@FOSUserBundle/Resources/config/routing/all.xml"
prefix: /
我的问题是当我输入: localhost/project/admin
我想显示连接到管理员后台的登录表单
但没有显示它直接连接到管理员
我使用 fosUserBundle
终于找到问题了:
问题是我正在使用 jms_i18n_routing 翻译和国际化包
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/%locale%/admin, roles: ROLE_ADMIN }