Ошибка безопасности Phalcon Zircote / Swagger-php - PullRequest
0 голосов
/ 25 мая 2018

Я пытаюсь использовать Swagger-php для создания документации для API в приложении, над которым я работаю.Я хочу защитить его с помощью JWT, поэтому вставил SecurityScheme в мою ControllerBase:

/** 
 * @SWG\SecurityScheme(
 *     securityDefinition="Bearer",
 *     bearerFormat="JWT",
 *     type="apiKey",
 *     name="Authorization",
 *     in="header"
 * )
 */

И затем в моем контроллере я хотел использовать его

/**
 * @SWG\Get(
 *      path="/test",
 *      @SWG\Response(
 *          response="200",
 *          description="Returns test data"
 *      ),
 *     security={{"Bearer":{}}}
 * )
 */ 

Он загружается правильномой Swagger UI, но когда я пытаюсь выполнить запрос, я получил ошибку в ответ:

Синтаксическая ошибка, неожиданный токен}, рядом с '}}

Это выглядиткак правильные аннотации для Swagger неверны для интерпретатора PHP.Я могу изменить его на

security={{"Bearer":{''}}}

И тогда запрос работает, но когда я перезагружаю Swagger UI, запрос там не появляется.

Кто-нибудь может мне помочь, пожалуйста?

ОБНОВЛЕНИЕ: Я ошибался, полагая, что это проблема PHP Interpreter.Проблема возникает при использовании аннотаций Phalcon.Вот вся ошибка, возвращаемая сервером.

Синтаксическая ошибка, неожиданный токен}, рядом с '}})' в / var / www / api / api / app / modules / user / controllers /UserController.php в строке 21

0 [internal function]:
Phalcon\Annotations\Reader->parse('Api\Modules\Use...')
1 [internal function]: Phalcon\Annotations\Adapter->get('Api\Modules\Use...')
2 /var/www/api/api/app/library/ApiManager/ApiAnnotation.php(54): Phalcon\Annotations\Adapter->getMethod('Api\Modules\Use...',
'getAllUsersActi...')
3 /var/www/api/api/app/library/ApiManager/ApiAnnotation.php(41): Api\Library\ApiManager\ApiAnnotation->getFromActiveAction()
4 /var/www/api/api/app/library/AuthGuard/AuthGuard.php(23): Api\Library\ApiManager\ApiAnnotation->__construct()
5 /var/www/api/api/app/controllers/ControllerBase.php(37): Api\Library\AuthGuard\AuthGuard->__construct()
6 [internal function]: Api\Controllers\ControllerBase->initialize()
7 [internal function]: Phalcon\Dispatcher->dispatch()
8 /var/www/api/api/public/index.php(54): Phalcon\Mvc\Application->handle()
9 {main}
...