Как определить соглашение об именовании объекта незащищенного метода в security.yml в Symfony php? - PullRequest
0 голосов
/ 19 декабря 2018

Ниже приведен мой 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)
...