Security Symfony 4:无法访问管理员角色。拒绝访问
我正在学习Symfony 4,并尝试使用Symfony 4文档创建应用程序 我确实按照这个来做管理员角色 但是当我访问路径Security Symfony 4:无法访问管理员角色。拒绝访问,security,roles,symfony4,Security,Roles,Symfony4,我正在学习Symfony 4,并尝试使用Symfony 4文档创建应用程序 我确实按照这个来做管理员角色 但是当我访问路径/admin时,总是拒绝访问。 我在Symfony文档页面和StackOverflow上读了很多文章,但没有找到解决方法。这是我的背景 //config/packges/security.yaml security: encoders: App\Entity\User: algorithm: bcrypt provi
/admin
时,总是拒绝访问。
我在Symfony文档页面和StackOverflow上读了很多文章,但没有找到解决方法。这是我的背景
//config/packges/security.yaml
security:
encoders:
App\Entity\User:
algorithm: bcrypt
providers:
our_db_provider:
entity:
class: App\Entity\User
in_memory:
memory:
users:
admin:
password: admin123
roles: 'ROLE_ADMIN'
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
pattern: ^/
http_basic: ~
provider: our_db_provider
form_login:
login_path: login
check_path: login
default_target_path: index
always_use_default_target_path: true
logout:
path: /logout
target: /index
access_control:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin, roles: ROLE_ADMIN }
下面是Symfony调试日志:
未捕获的PHP异常Symfony\Component\Security\Core\Exception\accessdeniedeexception:“拒绝访问”。位于C:\xampp\htdocs\aimer mvc\vendor\Symfony\Security\Http\Firewall\AccessListener.PHP第68行
请帮帮我。非常感谢你 如果你想用admin/admin123测试你的应用程序,你必须允许防火墙中的
内存提供程序:
仅适用于http_basic:
security:
encoders:
App\Entity\User:
algorithm: bcrypt
providers:
our_db_provider:
entity:
class: App\Entity\User
in_memory:
memory:
users:
admin:
password: admin123
roles: 'ROLE_ADMIN'
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
pattern: ^/
http_basic:
provider: in_memory
provider: our_db_provider
form_login:
login_path: login
check_path: login
default_target_path: index
always_use_default_target_path: true
logout:
path: /logout
target: /index
access_control:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin, roles: ROLE_ADMIN }
对于form_登录:
security:
encoders:
App\Entity\User:
algorithm: bcrypt
providers:
both_providers:
chain:
providers: [in_memory, our_db_provider]
our_db_provider:
entity:
class: App\Entity\User
in_memory:
memory:
users:
admin:
password: admin123
roles: 'ROLE_ADMIN'
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
pattern: ^/
http_basic: ~
provider: both_providers
form_login:
login_path: login
check_path: login
default_target_path: index
always_use_default_target_path: true
logout:
path: /logout
target: /index
access_control:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin, roles: ROLE_ADMIN }
请参阅示例…我尝试将其作为您的代码进行修复,但它仍然没有更改。无论如何,谢谢你。我将尝试一些方法:))您在测试中使用什么登录名/密码?我从/index访问角色/管理员,但访问被拒绝。即使登录与否,它仍然拒绝访问。非常感谢您的帮助。当我只使用提供者:in_memory时,我可以访问管理员角色,但当使用chain_providers包括in_memory user和user load from database时,请访问Deneid。非常感谢@AlterPHP的帮助。最后,我找到了解决这个问题的方法。在数据库/app\u用户表/role列中,可以手动编辑从role\u user到role\u ADMIN的用户角色。