symfony2 앱에 FOSRestBundle을 추가했습니다.이 앱에는 이미 공용 영역과 FOSUserBundle로 보호되는 관리 영역이 있습니다.FOSRestBundle http 기본 인증 추가
내 문제는 브라우저에 사용자/암호를 묻는 메시지가 표시되지 않으며 API를 curl
에 연결할 때 권한이없는 것입니다. 내가 LEEP이 시점에서
firewalls:
backend:
pattern: ^/admin/
provider: administrator
anonymous: ~
form_login:
login_path: /admin/login
check_path: /admin/login_check
logout:
path: /admin/logout
target: /admin/
api:
pattern: ^/api/
provider: api_provider
anonymous: ~
# form_login: false # <- needed or not?
http_basic:
realm: "Api"
main:
pattern: ^/
form_login:
login_path: /login
check_path: /login_check
provider: user
csrf_provider: form.csrf_provider
logout: true
anonymous: true
:
# app/config/security.yml
providers:
user:
id: fos_user.user_provider.username
administrator:
entity: { class: App\UserBundle\Entity\Administrator, property: login }
지금 내가 API 영역을 추가하고 기본 HTTP 인증을 사용하려면, 그래서 새로운 프로 바이더
api_provider:
memory:
users:
user1: { password: 1234, roles: 'ROLE_API_USER' }
user2: { password: 1234, roles: 'ROLE_API_USER' }
그리고 새로운 방화벽을 추가 403 - Forbidden
이 표시됩니다.이 정보를 추가하면 security.yml
:
access_control:
- { path: ^/admin/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/user, role: ROLE_ADMIN_USUARIOS }
- { path: ^/admin/, role: ROLE_ADMIN }
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/error, role: ROLE_USER }
- { path: ^/api/, role: ROLE_API_USER }
- { path: ^/api/v1/users, role: ROLE_API_USER }
다음은 401 - unauthorized
입니다.
비록 http 기본 인증 강제 브라우저가 사용자/암호를 묻는 메시지를 표시하지만 이는 발생하지 않습니다. 내가 마침내 필요한 것은 서버가 this one과 같은 http 요청에서 기본 인증 헤더를 수락하는 것입니다.
나는 뭔가를 놓치고 있습니까?
감사
, 당신은 당신의 자신의 질문에 대한 답변으로 게시 할 수 있습니다 :) – tgies