Commit Graph

343 Commits

Author SHA1 Message Date
ErickSkrauch
a81ef5cac2 Replace separate minecraft access tokens with JWT 2019-12-04 21:10:15 +03:00
ErickSkrauch
060a4e960a Handle legacy refresh tokens 2019-12-04 13:40:12 +03:00
ErickSkrauch
a9a56c9e1d Extract encryption key into the configuration param 2019-12-04 13:24:30 +03:00
ErickSkrauch
72cbf16c97 Merge branch 'master' into oauth_jwt_tokens
# Conflicts:
#	api/components/OAuth2/Entities/AccessTokenEntity.php
#	api/components/OAuth2/Entities/RefreshTokenEntity.php
#	api/components/OAuth2/Grants/RefreshTokenGrant.php
#	api/components/OAuth2/Storage/SessionStorage.php
#	api/components/User/OAuth2Identity.php
2019-12-04 01:17:12 +03:00
ErickSkrauch
46b771a061 Fixes ACCOUNTS-5VE 2019-12-02 22:28:47 +03:00
ErickSkrauch
9557064a97 Fixes ACCOUNTS-5VF 2019-12-02 22:22:51 +03:00
ErickSkrauch
01028cf378 Fixes ACCOUNTS-5VC. Handle the case when there is missing session for access or refresh token 2019-12-02 22:15:52 +03:00
ErickSkrauch
22ef41ac7c Fixes ACCOUNTS-5V9. Handle case when access token don't have associated account 2019-12-02 21:15:18 +03:00
ErickSkrauch
e52dbdbf19 Do not include offline_access scope into access_token 2019-11-07 01:12:18 +03:00
ErickSkrauch
da318ef2ed Merge branch 'master' into oauth_jwt_tokens 2019-11-07 00:00:26 +03:00
ErickSkrauch
22982b319b Fix all tests 2019-09-24 01:56:32 +03:00
ErickSkrauch
2beacd0827 Add tests for the legacy tokens, fix some tests cases [skip ci] 2019-09-23 01:03:36 +03:00
ErickSkrauch
a148da2ecf Add tests for the legacy tokens 2019-09-23 00:53:13 +03:00
ErickSkrauch
cf62c686b1 Rework identity provider for the legacy OAuth2 tokens [skip ci] 2019-09-22 19:24:22 +03:00
ErickSkrauch
c722c46ad5 Add support for the legacy refresh tokens, make the new refresh tokens non-expire [skip ci] 2019-09-22 02:42:08 +03:00
ErickSkrauch
5536c34b9c Restore full functionality of OAuth2 server [skip ci] 2019-09-22 00:19:11 +03:00
ErickSkrauch
45101d6453 Completely restored authorization_code grant for user side.
Reworked oauth_sessions table.
Added extension to use MariaDB's JSON columns.
Rewritten tests for authorization_code grant for client side.
Deprecate some old shit.
[skip ci]
2019-09-18 02:15:12 +03:00
ErickSkrauch
8a1d7148d0 Implemented public scopes repository. Fix some auth cases [skip ci] 2019-09-13 01:19:03 +03:00
ErickSkrauch
4dc2a3025b Rewrite tests for OAuth2 validate and auth code complete steps [skip ci] 2019-09-06 02:33:16 +03:00
ErickSkrauch
29fc267148 Do not delete minecraft access token after its validation 2019-09-01 23:10:47 +03:00
ErickSkrauch
0b63dc2d84 Upgrade oauth2-server to 8.0.0 version, rewrite repositories and entities, start rewriting tests. Intermediate commit [skip ci] 2019-08-23 11:28:04 +03:00
ErickSkrauch
23a220637c Define default value for AUTHSERVER_HOST 2019-08-08 02:49:04 +03:00
ErickSkrauch
fff358e038 Merge branch 'jwt-encryption-algorithm' into 'master'
Implemented Rs256 jwt encryption algorithm

See merge request elyby/accounts!7
2019-08-02 21:27:07 +00:00
ErickSkrauch
6ad66b28cf Generate keys pair if they aren't exists 2019-08-02 19:16:34 +03:00
ErickSkrauch
967d8b11a0 Improve tests coverage 2019-08-02 18:32:08 +03:00
ErickSkrauch
d9f2b1a8c9 Upgrade PHPUnit to 8. Replace codeception/base with codeception/codeception due to release bug in the base version. 2019-08-02 15:57:17 +03:00
ErickSkrauch
f2ab7346aa Fixed almost everything, but all functional tests are broken at the last minute :( 2019-08-02 03:29:20 +03:00
ErickSkrauch
6bd054e743 Fix some tests 2019-08-01 19:58:18 +03:00
ErickSkrauch
45c2ed601d Replace emarref/jwt with lcobucci/jwt
Refactor all JWT-related components
Replace RS256 with ES256 as a preferred JWT algorithm
2019-08-01 12:17:12 +03:00
valik
b2bd267eda Removed change skin scope from refresh code 2019-07-31 15:23:01 +03:00
ErickSkrauch
4c2a9cc172 Cleanup User Component, update tests 2019-07-26 17:04:57 +03:00
valik
e23c3aeaed Implemented change skin scope 2019-07-26 12:49:48 +03:00
valik
445c234360 Added jwt public and private key path params to user component 2019-07-26 11:11:09 +03:00
valik
3f9ee42539 Implemented Rs256 jwt encryption algorithm 2019-07-25 16:29:08 +03:00
ErickSkrauch
3dbf29d34c Translate all code comments from Russian to English [skip ci] 2019-07-15 01:59:56 +03:00
ErickSkrauch
31069562b3 Update Yii2 framework to the latest version 2019-06-18 02:37:04 +03:00
ErickSkrauch
d5cb0f304c Add tests for emails renderer api client and Yii2 wrapper component 2019-06-18 01:19:07 +03:00
ErickSkrauch
75fdd5d1ba Upgrade Codeception to 3 version. Remove codeception/verify. 2019-05-14 02:12:49 +03:00
ErickSkrauch
194a7acd2a Fixes ACCOUNTS-5FF. Handle 204 response from Chrly. 2019-05-13 19:39:11 +03:00
ErickSkrauch
f33439d829 Completely untie the backend from the frontend.
Build nginx and mariadb together with the app image.
Upgrade docker-compose configuration to 3 version.
Add cleanup step to the gitlab-ci.
2019-04-06 15:52:23 +02:00
ErickSkrauch
e13b6f0d94 Upgrade PHP to 7.3 and fix some related code errors. Disable self_accessor fixer for PHP-CS-Fixer 2019-04-06 04:15:23 +02:00
ErickSkrauch
b20825a051 Update ely/php-code-style and run updated CS fixer 2019-02-26 02:26:02 +03:00
ErickSkrauch
ea4ebd19ef Update dependencies 2019-02-23 17:15:20 +03:00
ErickSkrauch
1cafa36b98 Fix codestyle 2019-02-23 02:27:38 +03:00
ErickSkrauch
b05dc6816e Rework tests structure. Upgrade codeception to 2.5.3. Merge params configuration into app configuration. 2019-02-20 22:58:52 +03:00
ErickSkrauch
918501da81 Implemented the ability to get information about the current account by 0 id 2019-01-24 19:29:46 +03:00
ErickSkrauch
3646bfcb64 Fixes ACCOUNTS-54A. Include deleted applications in the lookup for exists applications. 2018-11-11 13:48:23 +03:00
ErickSkrauch
262142a835 Disable csrf cookies for api 2018-07-11 01:38:48 +03:00
ErickSkrauch
c0aa78d156 Implemented WebHooks delivery queue.
Completely removed usage of the RabbitMQ. Queue now based on Redis channels.
Worker process now extracted as separate docker container.
Base image upgraded to the 1.8.0 version (PHP 7.2.7 and pcntl extension).
2018-07-08 18:20:19 +03:00
ErickSkrauch
02ea7346a8 Implemented PHP-CS-Fixer support 2018-04-17 23:47:25 +03:00
ErickSkrauch
4ee8544355 Fix 403 error on not exists application.
Remove countUsers from minecraft server application type.
2018-03-25 22:21:22 +03:00
ErickSkrauch
5a8c2641c1 Replace google.com/recaptcha to recaptcha.net domain to possibly solve China troubles 2018-03-16 19:05:39 +03:00
ErickSkrauch
673429e577 Implementation of the backend for the OAuth2 clients management 2018-02-28 01:27:35 +03:00
ErickSkrauch
ddec87e3a9 Include composer.lock in the repository. Update dependencies. 2018-02-19 20:06:43 +03:00
ErickSkrauch
013ddd1b1b Добавлено экранирование # символа в QR коде 2018-01-28 13:34:27 +03:00
ErickSkrauch
c6d18f49e7 Улучшено логгирование метрик в statsd 2018-01-02 20:45:04 +03:00
ErickSkrauch
e3a99f04fe Fixes ACCOUNTS-37R 2018-01-02 20:22:56 +03:00
ErickSkrauch
120057b66c Fixes ACCOUNTS-322 2018-01-02 19:29:34 +03:00
ErickSkrauch
5649c49a57 Fixes ACCOUNTS-319 2018-01-01 17:12:15 +03:00
ErickSkrauch
40625dbef9 Упразднено использование aud и iss полей для JWT токенов 2017-12-02 22:09:17 +03:00
ErickSkrauch
9356ad24b3 Больше не игнорируем JWT InvalidSubjectException
UnauthorizedHttpException в User/Component больше не логгируется
2017-12-02 21:04:48 +03:00
ErickSkrauch
b8049e8899 Обновлены тесты для всех форм, что отправляли письма 2017-11-28 14:40:24 +03:00
ErickSkrauch
88175fea48 Отправка всех email вынесена в очередь 2017-11-28 14:33:48 +03:00
ErickSkrauch
6f7fcf9e44 Логгируем информацию о типе используемого токена при авторизации на сервере 2017-11-22 22:47:35 +03:00
ErickSkrauch
a94e7095c8 Интегрирован сбор метрик в действия с аккаунтом 2017-11-22 22:47:35 +03:00
ErickSkrauch
6ee40f3fcc Интегрирован сбор метрик в oauth2 процесс 2017-11-22 22:47:35 +03:00
ErickSkrauch
63db3adca9 Добавлена аннотация для сбора метрик из моделей Yii2 и интегрирована в формы авторизации и регистрации 2017-11-22 22:47:35 +03:00
ErickSkrauch
236f0e7d50 Интегрирован сбор метрик в sessionserver 2017-11-22 22:47:35 +03:00
ErickSkrauch
72f546c827 Добавлена запись метрики времени работы приложения 2017-11-22 22:47:35 +03:00
ErickSkrauch
47b6761f78 Теперь на этапе включения TOTP код может истечь в течение 2 периодов 2017-11-20 20:48:43 +03:00
ErickSkrauch
dab0ab4cba Тестовые данные теперь интегрируются через аспектную библиотеку 2017-11-14 20:34:16 +03:00
ErickSkrauch
867c1a2b3b Интергрирован фреймворк для поддержки аспектного программирования 2017-11-13 17:15:24 +03:00
ErickSkrauch
85d109910f Исправлена ошибка при попытке отправить сообщение в форму обратной связи, будучи залогиненным 2017-11-01 19:56:23 +03:00
ErickSkrauch
6d4d2177d0 Исправлена обработка ситуации, когда при использовании старого протокола авторизации на сервере пользователь передавал свой ник в неправильном регистре 2017-10-20 15:19:39 +03:00
ErickSkrauch
b8e445b99f Исправлена обработка ситуации, когда uuid selectedProfile при join операции передан без дефисов 2017-10-20 15:03:21 +03:00
ErickSkrauch
c7cf54f32f Не логгируем InvalidSubjectException, возникающий из-за перехода на новый формат токенов 2017-10-18 14:42:04 +03:00
ErickSkrauch
58d3fd57a8 Исправлен баг с выдачей наружу внутренних названий пермишенов 2017-10-18 02:37:01 +03:00
ErickSkrauch
18364c625f Форма восстановления пароля больше не требует решения totp 2017-10-16 00:23:31 +03:00
ErickSkrauch
c855cdb394 Добавлен запрос пароля для запроса инициализации смены email 2017-10-13 18:43:24 +03:00
ErickSkrauch
81bdb1f2af Базовая реализация реакции сервера на dummy данные. 2017-10-12 01:50:09 +03:00
ErickSkrauch
3143d2fc26 Исправлен парсинг списка скоупов, если передан массив
Fixes ACCOUNTS-2NA
2017-10-04 14:42:48 +03:00
ErickSkrauch
7a6c4c3d2b Теперь из otp secret удаляются значения, которые на письме могут быть спутаны 2017-09-30 02:41:26 +03:00
ErickSkrauch
35e7ae2447 Добавлена возможность получить права на смену ника/пароля пользователя и тесты под это дело. 2017-09-30 01:04:26 +03:00
ErickSkrauch
8e79d1dd1c Добавлено право на избегание удостоверения личности для внутренних приложений 2017-09-30 00:44:05 +03:00
ErickSkrauch
0198a3e010 Добавлена конвертация старых запросов к аккаунтам в новые 2017-09-21 20:00:13 +03:00
ErickSkrauch
dd2c4bc413 Объединены сущности для авторизации посредством JWT токенов и токенов, выданных через oAuth2.
Все действия, связанные с аккаунтами, теперь вызываются через url `/api/v1/accounts/<id>/<action>`.
Добавлена вменяемая система разграничения прав на основе RBAC.
Теперь oAuth2 токены генерируются как случайная строка в 40 символов длинной, а не UUID.
Исправлен баг с неправильным временем жизни токена в ответе успешного запроса аутентификации.
Теперь все unit тесты можно успешно прогнать без наличия интернета.
2017-09-19 20:06:17 +03:00
ErickSkrauch
928b3aa7fc Исправлена инициализация ChangeUsernameForm в форме подтверждения E-mail 2017-09-07 22:51:14 +03:00
ErickSkrauch
1169097adb Форма смены ника теперь принимает аккаунт через конструктор 2017-09-07 22:51:14 +03:00
ErickSkrauch
cb068b9dc0 Все реализации Grant'ов для oAuth перенесены в проект. Форк league/oauth2-client больше не используется 2017-09-07 22:51:07 +03:00
ErickSkrauch
33148a5ac7 Логика oauth процесса вынесена в отдельный класс 2017-09-07 22:21:13 +03:00
ErickSkrauch
2c08130f4e Поле token в контексте otp токенов переименовано в totp 2017-09-07 02:37:52 +03:00
ErickSkrauch
549db30b2b Обновлён Spomky-Labs/otphp до 9.0.2 версии 2017-08-08 20:18:44 +03:00
ErickSkrauch
5480e3c8ef Исправлен рендеринг QR кода для пользователей с короткими username или email 2017-08-08 02:08:34 +03:00
ErickSkrauch
9a852e8052 Рендерим SVG QR код без фиксации его размера, т.к. посчитать правильное разрешение в момент подготовки рендерера не известен размер матрицы 2017-08-08 00:56:24 +03:00
ErickSkrauch
46936db0a7 Fix #344 Баг при попытке зарефрешить accessToken, который окончательно сгнил 2017-08-07 14:05:42 +03:00
ErickSkrauch
f75c241c5f Не экранируем символы html символы в qr коде, т.к. они всё таки не должны быть экранированы 2017-08-03 14:50:48 +03:00
ErickSkrauch
ec9da1709b Теперь в поле qr запроса /api/two-factor-auth возвращается строка с svg без base64, начинающаяся с data:image/svg+xml, 2017-08-03 03:02:51 +03:00
ErickSkrauch
411ffe0606 Переводим пробелы (по стандарту OAuth2) в наш scopes delimiter. 2017-07-13 13:44:06 +03:00
ErickSkrauch
400f0e87b9 Теперь при передаче запроса как json, закодированный в теле, он автоматически парсится 2017-05-31 03:10:22 +03:00
ErickSkrauch
d0a7c08b2c ReCaptcha\Validator теперь повторяет запрос к API Google, если запрос не удался 2017-05-18 17:06:01 +03:00