在我的 Symfony 2 应用程序中配置基于 HTTP 浏览器的基本身份验证 - 不显示 HTTP 身份验证登录
Configuring basic HTTP browser-based authentication in my Symfony 2 application - HTTP auth login not displaying
我正在尝试为我的 Symfony 2 应用程序中名为 /secret
的部分设置基本 HTTP browser-based authentication。
我希望 /secret
页面可以公开访问,但是 /secret
以下的任何页面(例如 /secret/landing
都将位于 SF2 防火墙之后。
当我转到 /secret
(或其任何子页面)时,我被重定向到我的应用程序的 /login
页面,但我不明白为什么?
security:
providers:
sylius_user_provider:
id: sylius.user_provider.name_or_email
in_memory:
memory:
users:
secret:
password: secret
roles: 'ROLE_SECRET'
encoders:
Symfony\Component\Security\Core\User\User: plaintext
firewalls:
main:
switch_user: { role: ROLE_ADMINISTRATION_ACCESS }
context: user
pattern: /.*
form_login:
provider: sylius_user_provider
login_path: /login
check_path: /login_check
failure_path: /login
default_target_path: /
use_forward: false
use_referer: true
remember_me:
key: %sylius.secret%
name: APP_REMEMBER_ME
lifetime: 31536000
always_remember_me: true
remember_me_parameter: _remember_me
oauth:
resource_owners:
facebook: "/login/check-facebook"
google: "/login/check-google"
amazon: "/login/check-amazon"
login_path: /login
failure_path: /login
oauth_user_provider:
service: sylius.oauth.user_provider
logout: true
anonymous: true
secret:
pattern: ^/secret/.*
http_basic: ~
provider: in_memory
context: secret
access_control:
- { path: ^/secret/.*, roles: ROLE_SECRET }
尝试添加到访问控制
- { path: ^/secret, roles: IS_AUTHENTICATED_ANONYMOUSLY}
如果将来对某人有帮助,这就是我在 security.yml
中所做的:
firewalls:
secret:
pattern: ^/secret/$
anonymous: true
secret_secured:
pattern: ^/secret/.*$
http_basic: ~
provider: in_memory
context: secret
access_control:
- { path: ^/secret, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/secret/.*, roles: ROLE_SECRET }
我正在尝试为我的 Symfony 2 应用程序中名为 /secret
的部分设置基本 HTTP browser-based authentication。
我希望 /secret
页面可以公开访问,但是 /secret
以下的任何页面(例如 /secret/landing
都将位于 SF2 防火墙之后。
当我转到 /secret
(或其任何子页面)时,我被重定向到我的应用程序的 /login
页面,但我不明白为什么?
security:
providers:
sylius_user_provider:
id: sylius.user_provider.name_or_email
in_memory:
memory:
users:
secret:
password: secret
roles: 'ROLE_SECRET'
encoders:
Symfony\Component\Security\Core\User\User: plaintext
firewalls:
main:
switch_user: { role: ROLE_ADMINISTRATION_ACCESS }
context: user
pattern: /.*
form_login:
provider: sylius_user_provider
login_path: /login
check_path: /login_check
failure_path: /login
default_target_path: /
use_forward: false
use_referer: true
remember_me:
key: %sylius.secret%
name: APP_REMEMBER_ME
lifetime: 31536000
always_remember_me: true
remember_me_parameter: _remember_me
oauth:
resource_owners:
facebook: "/login/check-facebook"
google: "/login/check-google"
amazon: "/login/check-amazon"
login_path: /login
failure_path: /login
oauth_user_provider:
service: sylius.oauth.user_provider
logout: true
anonymous: true
secret:
pattern: ^/secret/.*
http_basic: ~
provider: in_memory
context: secret
access_control:
- { path: ^/secret/.*, roles: ROLE_SECRET }
尝试添加到访问控制
- { path: ^/secret, roles: IS_AUTHENTICATED_ANONYMOUSLY}
如果将来对某人有帮助,这就是我在 security.yml
中所做的:
firewalls:
secret:
pattern: ^/secret/$
anonymous: true
secret_secured:
pattern: ^/secret/.*$
http_basic: ~
provider: in_memory
context: secret
access_control:
- { path: ^/secret, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/secret/.*, roles: ROLE_SECRET }