Ниже приведен мой security.yml
файл, в котором 2 метода отлично работают как незащищенные.Но api_slots
не работает как незащищенный метод.Я не знаю, как мне нужно определить имя объекта метода в security.yml
как getSlotsAction
имя метода, и я создал его объект как api_slots
, потому что для unsecureListAction
метод api_doctors-list
используется и отлично работает по желанию.
security:
encoders:
AppBundle\Entity\BaseUser:
algorithm: bcrypt
cost: 12
role_hierarchy:
ROLE_USER: ROLE_USER
ROLE_ADMIN: [ROLE_USER, ROLE_ALLOWED_TO_SWITCH]
providers:
admin:
entity:
class: AppBundle:AdminUser
property: email
api:
entity:
class: AppBundle:BaseUser
property: authToken
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
api_slots:
pattern: ^/api/slots$
methods: [GET]
security: false
anonymous: true
api_new_register:
pattern: ^/api/users$
methods: [POST]
security: false
anonymous: true
api_doctors_list:
pattern: ^/api/doctors$
methods: [GET]
security: false
anonymous: true
api_area:
pattern: ^/api
provider: api
user_checker: psyma.security.app_user.checker
guard:
authenticator: psyma.security.token_authenticator
stateless: true
anonymous: false
logout:
path: admin_logout
main:
pattern: ^/
anonymous: ~
access_control:
- { path: ^/admin/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: "%requires_channel%" }
- { path: ^/admin, roles: ROLE_ADMIN, requires_channel: "%requires_channel%" }
- { path: ^/api, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: "%requires_channel%" }
- { path: ^/, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: "%requires_channel%" }
Вот имена моих методов для трех вышеупомянутых незащищенных объектов:
Для api_doctors_list
/**
* @Route("")
* @Method("GET")
*/
public function unsecureListAction()
Для api_new_register
/**
* @param Request $request
*
* @return JsonResponse
* @Route("/users")
* @Method("POST")
*/
public function patientRegistrationAction(Request $request)
идля api_slots
/**
* Class SlotController.
*
* @Route("/slots")
*/
class SlotController extends JsonController
{
/**
* @Route("")
* @Method("GET")
*
* @param Request $request
*
* @return JsonResponse
*/
//@Security("has_role('ROLE_DOCTORUSER') or has_role('ROLE_PATIENTUSER') ")
public function getSlotsAction(Request $request)