diff --git a/CHANGELOG.md b/CHANGELOG.md index c70c7355..46232468 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,8 +6,17 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ## [Unreleased] +## [5.3.4] +### Fixed +- Improved handling of expired session on login + +## [5.3.3] +### Fixed +- Updated dependencies +- Rotated credentials for CI/CD + ## [5.3.2] -### Fixed +### Fixed - Changed Docker credentials ## [5.3.1] @@ -129,7 +138,9 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ### Added - Initial version of Password Manager Backend. -[Unreleased]: https://github.com/silinternational/idp-pw-api/compare/5.3.2...HEAD +[Unreleased]: https://github.com/silinternational/idp-pw-api/compare/5.3.4...HEAD +[5.3.4]: https://github.com/silinternational/idp-pw-api/compare/5.3.3..5.3.4 +[5.3.3]: https://github.com/silinternational/idp-pw-api/compare/5.3.2..5.3.3 [5.3.2]: https://github.com/silinternational/idp-pw-api/compare/5.3.1..5.3.2 [5.3.1]: https://github.com/silinternational/idp-pw-api/compare/5.3.0..5.3.1 [5.3.0]: https://github.com/silinternational/idp-pw-api/compare/5.2.2...5.3.0 diff --git a/LICENSE.txt b/LICENSE.txt index 9afc3799..a1d3a7f5 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2020 SIL International +Copyright (c) 2021 SIL International Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file +SOFTWARE. diff --git a/Makefile b/Makefile index 1b278145..7354aaa5 100644 --- a/Makefile +++ b/Makefile @@ -22,7 +22,7 @@ composer: docker-compose run --rm cli composer install composerupdate: - docker-compose run --rm cli composer update + docker-compose run --rm cli bash -c "composer update && composer show -D > versions.json" email: docker-compose up -d email diff --git a/application/common/components/passwordStore/Ldap.php b/application/common/components/passwordStore/Ldap.php index b0698a7f..be2c8421 100644 --- a/application/common/components/passwordStore/Ldap.php +++ b/application/common/components/passwordStore/Ldap.php @@ -2,6 +2,7 @@ namespace common\components\passwordStore; use Adldap\Adldap; +use Adldap\Auth\BindException; use Adldap\Schemas\OpenLDAP; use yii\base\Component; @@ -78,6 +79,7 @@ class Ldap extends Component implements PasswordStoreInterface /** * Connect and bind to ldap server + * @throws \Exception */ public function connect() { @@ -101,7 +103,11 @@ public function connect() 'schema' => OpenLDAP::class, ]); - $this->ldapProvider = $this->ldapClient->connect(); + try { + $this->ldapProvider = $this->ldapClient->connect(); + } catch (BindException $e) { + throw new \Exception($e->getDetailedError()); + } } /** @@ -239,7 +245,7 @@ protected function encodeForUnicodePwdField($password) } return $encodedPassword; } - + /** * @param \Adldap\Models\Entry $user * @param string $password diff --git a/application/composer.json b/application/composer.json index 1db196aa..58bf20ad 100644 --- a/application/composer.json +++ b/application/composer.json @@ -25,7 +25,7 @@ "simplesamlphp/saml2": "^3.4.2", "google/apiclient": "^2.0", "google/recaptcha": "^1.1.2", - "adldap2/adldap2": "^9.0", + "adldap2/adldap2": "^10.0", "fillup/fake-bower-assets": "2.0.9", "icawebdesign/hibp-php": "3.1.0", "codemix/yii2-streamlog": "^1.3" diff --git a/application/composer.lock b/application/composer.lock index ad2f4d0c..a172ef38 100644 --- a/application/composer.lock +++ b/application/composer.lock @@ -4,31 +4,37 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "bac4a944d8b6a3d94938ef094045d52c", + "content-hash": "f8b5c1011fdf24bc89a6465eb53f42a6", "packages": [ { "name": "adldap2/adldap2", - "version": "v9.1.6", + "version": "v10.3.1", "source": { "type": "git", "url": "https://github.com/Adldap2/Adldap2.git", - "reference": "d50204d3eff587957b4bb9d7382d2eda5009ed16" + "reference": "936a4e2eb925d005198f716a75bb78068c4de94d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Adldap2/Adldap2/zipball/d50204d3eff587957b4bb9d7382d2eda5009ed16", - "reference": "d50204d3eff587957b4bb9d7382d2eda5009ed16", + "url": "https://api.github.com/repos/Adldap2/Adldap2/zipball/936a4e2eb925d005198f716a75bb78068c4de94d", + "reference": "936a4e2eb925d005198f716a75bb78068c4de94d", "shasum": "" }, "require": { + "ext-json": "*", "ext-ldap": "*", - "illuminate/contracts": "~5.0", + "illuminate/contracts": "~5.0|~6.0|~7.0|~8.0", "php": ">=7.0", - "tightenco/collect": "~5.0" + "psr/log": "~1.0", + "psr/simple-cache": "~1.0", + "tightenco/collect": "~5.0|~6.0|~7.0|~8.0" }, "require-dev": { "mockery/mockery": "~1.0", - "phpunit/phpunit": "~6.0" + "phpunit/phpunit": "~6.0|~7.0|~8.0" + }, + "suggest": { + "ext-fileinfo": "fileinfo is required when retrieving user encoded thumbnails" }, "type": "library", "autoload": { @@ -57,7 +63,7 @@ "ldap", "windows" ], - "time": "2019-04-03T19:41:38+00:00" + "time": "2020-09-09T12:55:51+00:00" }, { "name": "bower-asset/inputmask", @@ -562,16 +568,16 @@ }, { "name": "google/apiclient-services", - "version": "v0.154", + "version": "v0.156", "source": { "type": "git", "url": "https://github.com/googleapis/google-api-php-client-services.git", - "reference": "7f44a314836c444b7894d648c1c49f83fb9d37ca" + "reference": "2f5e54fdef034f856208328126bddd8376dae4b3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/7f44a314836c444b7894d648c1c49f83fb9d37ca", - "reference": "7f44a314836c444b7894d648c1c49f83fb9d37ca", + "url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/2f5e54fdef034f856208328126bddd8376dae4b3", + "reference": "2f5e54fdef034f856208328126bddd8376dae4b3", "shasum": "" }, "require": { @@ -595,7 +601,7 @@ "keywords": [ "google" ], - "time": "2020-11-19T19:01:11+00:00" + "time": "2020-11-30T20:03:55+00:00" }, { "name": "google/auth", @@ -1049,27 +1055,27 @@ }, { "name": "illuminate/contracts", - "version": "v5.8.36", + "version": "v7.30.0", "source": { "type": "git", "url": "https://github.com/illuminate/contracts.git", - "reference": "00fc6afee788fa07c311b0650ad276585f8aef96" + "reference": "7ddcd4342c174e1be0e04f6011fea185d3c653c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/contracts/zipball/00fc6afee788fa07c311b0650ad276585f8aef96", - "reference": "00fc6afee788fa07c311b0650ad276585f8aef96", + "url": "https://api.github.com/repos/illuminate/contracts/zipball/7ddcd4342c174e1be0e04f6011fea185d3c653c1", + "reference": "7ddcd4342c174e1be0e04f6011fea185d3c653c1", "shasum": "" }, "require": { - "php": "^7.1.3", + "php": "^7.2.5|^8.0", "psr/container": "^1.0", "psr/simple-cache": "^1.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.8-dev" + "dev-master": "7.x-dev" } }, "autoload": { @@ -1089,7 +1095,7 @@ ], "description": "The Illuminate Contracts package.", "homepage": "https://laravel.com", - "time": "2019-07-30T13:57:21+00:00" + "time": "2020-10-27T15:11:37+00:00" }, { "name": "monolog/monolog", @@ -1184,16 +1190,16 @@ }, { "name": "nesbot/carbon", - "version": "2.41.5", + "version": "2.42.0", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "c4a9caf97cfc53adfc219043bcecf42bc663acee" + "reference": "d0463779663437392fe42ff339ebc0213bd55498" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/c4a9caf97cfc53adfc219043bcecf42bc663acee", - "reference": "c4a9caf97cfc53adfc219043bcecf42bc663acee", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/d0463779663437392fe42ff339ebc0213bd55498", + "reference": "d0463779663437392fe42ff339ebc0213bd55498", "shasum": "" }, "require": { @@ -1208,7 +1214,7 @@ "kylekatarnls/multi-tester": "^2.0", "phpmd/phpmd": "^2.9", "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^0.12.35", + "phpstan/phpstan": "^0.12.54", "phpunit/phpunit": "^7.5 || ^8.0", "squizlabs/php_codesniffer": "^3.4" }, @@ -1269,7 +1275,7 @@ "type": "tidelift" } ], - "time": "2020-10-23T06:02:30+00:00" + "time": "2020-11-28T14:25:28+00:00" }, { "name": "phpseclib/phpseclib", @@ -1737,12 +1743,12 @@ "source": { "type": "git", "url": "https://github.com/Roave/SecurityAdvisories.git", - "reference": "44d202bbcf2339adf2941bf629cecfde4f58c35d" + "reference": "676668eda60bb8a32bd2a4efcb12c96d6e1c4bc6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/44d202bbcf2339adf2941bf629cecfde4f58c35d", - "reference": "44d202bbcf2339adf2941bf629cecfde4f58c35d", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/676668eda60bb8a32bd2a4efcb12c96d6e1c4bc6", + "reference": "676668eda60bb8a32bd2a4efcb12c96d6e1c4bc6", "shasum": "" }, "conflict": { @@ -1772,7 +1778,7 @@ "composer/composer": "<=1-alpha.11", "contao-components/mediaelement": ">=2.14.2,<2.21.1", "contao/core": ">=2,<3.5.39", - "contao/core-bundle": "= 4.10.0|>=4,<4.4.52|>=4.5,<4.9.6", + "contao/core-bundle": ">=4,<4.4.52|>=4.5,<4.9.6|= 4.10.0", "contao/listing-bundle": ">=4,<4.4.8", "datadog/dd-trace": ">=0.30,<0.30.2", "david-garcia/phpwhois": "<=4.3.1", @@ -1794,6 +1800,7 @@ "enshrined/svg-sanitize": "<0.13.1", "erusev/parsedown": "<1.7.2", "ezsystems/demobundle": ">=5.4,<5.4.6.1", + "ezsystems/ez-support-tools": ">=2.2,<2.2.3", "ezsystems/ezdemo-ls-extension": ">=5.4,<5.4.2.1", "ezsystems/ezfind-ls": ">=5.3,<5.3.6.1|>=5.4,<5.4.11.1|>=2017.12,<2017.12.0.1", "ezsystems/ezplatform": ">=1.7,<1.7.9.1|>=1.13,<1.13.5.1|>=2.5,<2.5.4", @@ -1850,8 +1857,8 @@ "nette/nette": ">=2,<2.0.19|>=2.1,<2.1.13", "nystudio107/craft-seomatic": "<3.3", "nzo/url-encryptor-bundle": ">=4,<4.3.2|>=5,<5.0.1", - "october/backend": ">=1.0.319,<1.0.467", - "october/cms": ">=1.0.319,<1.0.466", + "october/backend": ">=1.0.319,<1.0.470", + "october/cms": "= 1.0.469|>=1.0.319,<1.0.469", "october/october": ">=1.0.319,<1.0.466", "october/rain": ">=1.0.319,<1.0.468", "onelogin/php-saml": "<2.10.4", @@ -1864,8 +1871,9 @@ "padraic/humbug_get_contents": "<1.1.2", "pagarme/pagarme-php": ">=0,<3", "paragonie/random_compat": "<2", + "passbolt/passbolt_api": "<2.11", "paypal/merchant-sdk-php": "<3.12", - "pear/archive_tar": "<1.4.4", + "pear/archive_tar": "<1.4.11", "personnummer/personnummer": "<3.0.2", "phpfastcache/phpfastcache": ">=5,<5.0.13", "phpmailer/phpmailer": "<6.1.6", @@ -1967,8 +1975,8 @@ "titon/framework": ">=0,<9.9.99", "truckersmp/phpwhois": "<=4.3.1", "twig/twig": "<1.38|>=2,<2.7", - "typo3/cms": ">=6.2,<6.2.30|>=7,<7.6.32|>=8,<8.7.30|>=9,<9.5.20|>=10,<10.4.6", - "typo3/cms-core": ">=8,<8.7.30|>=9,<9.5.20|>=10,<10.4.6", + "typo3/cms": ">=6.2,<6.2.30|>=7,<7.6.32|>=8,<8.7.38|>=9,<9.5.23|>=10,<10.4.10", + "typo3/cms-core": ">=8,<8.7.38|>=9,<9.5.23|>=10,<10.4.10", "typo3/flow": ">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.10|>=3.1,<3.1.7|>=3.2,<3.2.7|>=3.3,<3.3.5", "typo3/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4", "typo3/phar-stream-wrapper": ">=1,<2.1.1|>=3,<3.1.1", @@ -2042,7 +2050,7 @@ "type": "tidelift" } ], - "time": "2020-11-20T09:02:03+00:00" + "time": "2020-12-02T06:02:50+00:00" }, { "name": "robrichards/xmlseclibs", @@ -3019,23 +3027,23 @@ }, { "name": "symfony/translation", - "version": "v5.1.8", + "version": "v5.2.0", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "27980838fd261e04379fa91e94e81e662fe5a1b6" + "reference": "52f486a707510884450df461b5a6429dd7a67379" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/27980838fd261e04379fa91e94e81e662fe5a1b6", - "reference": "27980838fd261e04379fa91e94e81e662fe5a1b6", + "url": "https://api.github.com/repos/symfony/translation/zipball/52f486a707510884450df461b5a6429dd7a67379", + "reference": "52f486a707510884450df461b5a6429dd7a67379", "shasum": "" }, "require": { "php": ">=7.2.5", "symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-php80": "^1.15", - "symfony/translation-contracts": "^2" + "symfony/translation-contracts": "^2.3" }, "conflict": { "symfony/config": "<4.4", @@ -3065,6 +3073,9 @@ }, "type": "library", "autoload": { + "files": [ + "Resources/functions.php" + ], "psr-4": { "Symfony\\Component\\Translation\\": "" }, @@ -3102,7 +3113,7 @@ "type": "tidelift" } ], - "time": "2020-10-24T12:01:57+00:00" + "time": "2020-11-28T11:24:18+00:00" }, { "name": "symfony/translation-contracts", @@ -3181,16 +3192,16 @@ }, { "name": "symfony/var-dumper", - "version": "v4.4.16", + "version": "v4.4.17", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "3718e18b68d955348ad860e505991802c09f5f73" + "reference": "65c6f1e848cda840ef7278686c8e30a7cc353c93" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/3718e18b68d955348ad860e505991802c09f5f73", - "reference": "3718e18b68d955348ad860e505991802c09f5f73", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/65c6f1e848cda840ef7278686c8e30a7cc353c93", + "reference": "65c6f1e848cda840ef7278686c8e30a7cc353c93", "shasum": "" }, "require": { @@ -3263,20 +3274,20 @@ "type": "tidelift" } ], - "time": "2020-10-26T20:47:51+00:00" + "time": "2020-11-24T09:55:37+00:00" }, { "name": "symfony/yaml", - "version": "v4.4.16", + "version": "v4.4.17", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "543cb4dbd45ed803f08a9a65f27fb149b5dd20c2" + "reference": "7531361cf38e4816821b4a12a42542b3c6143ad1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/543cb4dbd45ed803f08a9a65f27fb149b5dd20c2", - "reference": "543cb4dbd45ed803f08a9a65f27fb149b5dd20c2", + "url": "https://api.github.com/repos/symfony/yaml/zipball/7531361cf38e4816821b4a12a42542b3c6143ad1", + "reference": "7531361cf38e4816821b4a12a42542b3c6143ad1", "shasum": "" }, "require": { @@ -3331,7 +3342,7 @@ "type": "tidelift" } ], - "time": "2020-10-24T11:50:19+00:00" + "time": "2020-11-24T12:28:30+00:00" }, { "name": "tightenco/collect", @@ -3434,16 +3445,16 @@ }, { "name": "yiisoft/yii2", - "version": "2.0.39.2", + "version": "2.0.39.3", "source": { "type": "git", "url": "https://github.com/yiisoft/yii2-framework.git", - "reference": "c1d88666f4fc4702af5d492e4c5c35353c9ac6ca" + "reference": "7c3b93b57e568509a7cb5cef826d8c424a779f3f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/yiisoft/yii2-framework/zipball/c1d88666f4fc4702af5d492e4c5c35353c9ac6ca", - "reference": "c1d88666f4fc4702af5d492e4c5c35353c9ac6ca", + "url": "https://api.github.com/repos/yiisoft/yii2-framework/zipball/7c3b93b57e568509a7cb5cef826d8c424a779f3f", + "reference": "7c3b93b57e568509a7cb5cef826d8c424a779f3f", "shasum": "" }, "require": { @@ -3544,7 +3555,7 @@ "type": "tidelift" } ], - "time": "2020-11-13T10:15:29+00:00" + "time": "2020-11-23T19:17:58+00:00" }, { "name": "yiisoft/yii2-composer", @@ -4229,12 +4240,12 @@ "version": "1.7.1", "source": { "type": "git", - "url": "https://github.com/facebook/php-webdriver.git", + "url": "https://github.com/php-webdriver/php-webdriver-archive.git", "reference": "e43de70f3c7166169d0f14a374505392734160e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/facebook/php-webdriver/zipball/e43de70f3c7166169d0f14a374505392734160e5", + "url": "https://api.github.com/repos/php-webdriver/php-webdriver-archive/zipball/e43de70f3c7166169d0f14a374505392734160e5", "reference": "e43de70f3c7166169d0f14a374505392734160e5", "shasum": "" }, @@ -4282,20 +4293,21 @@ "selenium", "webdriver" ], + "abandoned": "php-webdriver/webdriver", "time": "2019-06-13T08:02:18+00:00" }, { "name": "fakerphp/faker", - "version": "v1.11.0", + "version": "v1.12.0", "source": { "type": "git", "url": "https://github.com/FakerPHP/Faker.git", - "reference": "f228dc5112bafc14c77d40a2acc0c48058e184b0" + "reference": "9aa6c9e289860951e6b4d010c7a841802d015cd8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/f228dc5112bafc14c77d40a2acc0c48058e184b0", - "reference": "f228dc5112bafc14c77d40a2acc0c48058e184b0", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/9aa6c9e289860951e6b4d010c7a841802d015cd8", + "reference": "9aa6c9e289860951e6b4d010c7a841802d015cd8", "shasum": "" }, "require": { @@ -4330,7 +4342,7 @@ "faker", "fixtures" ], - "time": "2020-11-15T20:27:00+00:00" + "time": "2020-11-23T09:33:08+00:00" }, { "name": "myclabs/deep-copy", @@ -5005,6 +5017,7 @@ "keywords": [ "tokenizer" ], + "abandoned": true, "time": "2017-11-27T05:48:46+00:00" }, { @@ -5153,23 +5166,23 @@ }, { "name": "sebastian/code-unit-reverse-lookup", - "version": "1.0.1", + "version": "1.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" + "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/1de8cd5c010cb153fcd68b8d0f64606f523f7619", + "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": ">=5.6" }, "require-dev": { - "phpunit/phpunit": "^5.7 || ^6.0" + "phpunit/phpunit": "^8.5" }, "type": "library", "extra": { @@ -5194,7 +5207,13 @@ ], "description": "Looks up which function or method a line of code belongs to", "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "time": "2017-03-04T06:30:41+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T08:15:22+00:00" }, { "name": "sebastian/comparator", @@ -5364,20 +5383,20 @@ }, { "name": "sebastian/exporter", - "version": "3.1.2", + "version": "3.1.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e" + "reference": "6b853149eab67d4da22291d36f5b0631c0fd856e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/68609e1261d215ea5b21b7987539cbfbe156ec3e", - "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/6b853149eab67d4da22291d36f5b0631c0fd856e", + "reference": "6b853149eab67d4da22291d36f5b0631c0fd856e", "shasum": "" }, "require": { - "php": "^7.0", + "php": ">=7.0", "sebastian/recursion-context": "^3.0" }, "require-dev": { @@ -5427,7 +5446,13 @@ "export", "exporter" ], - "time": "2019-09-14T09:02:43+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:47:53+00:00" }, { "name": "sebastian/global-state", @@ -5482,20 +5507,20 @@ }, { "name": "sebastian/object-enumerator", - "version": "3.0.3", + "version": "3.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" + "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", + "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", "shasum": "" }, "require": { - "php": "^7.0", + "php": ">=7.0", "sebastian/object-reflector": "^1.1.1", "sebastian/recursion-context": "^3.0" }, @@ -5525,24 +5550,30 @@ ], "description": "Traverses array structures and object graphs to enumerate all referenced objects", "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "time": "2017-08-03T12:35:26+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:40:27+00:00" }, { "name": "sebastian/object-reflector", - "version": "1.1.1", + "version": "1.1.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "773f97c67f28de00d397be301821b06708fca0be" + "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", - "reference": "773f97c67f28de00d397be301821b06708fca0be", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", + "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", "shasum": "" }, "require": { - "php": "^7.0" + "php": ">=7.0" }, "require-dev": { "phpunit/phpunit": "^6.0" @@ -5570,24 +5601,30 @@ ], "description": "Allows reflection of object attributes, including inherited and non-public ones", "homepage": "https://github.com/sebastianbergmann/object-reflector/", - "time": "2017-03-29T09:07:27+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:37:18+00:00" }, { "name": "sebastian/recursion-context", - "version": "3.0.0", + "version": "3.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" + "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/367dcba38d6e1977be014dc4b22f47a484dac7fb", + "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb", "shasum": "" }, "require": { - "php": "^7.0" + "php": ">=7.0" }, "require-dev": { "phpunit/phpunit": "^6.0" @@ -5608,14 +5645,14 @@ "BSD-3-Clause" ], "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de" }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, { "name": "Adam Harvey", "email": "aharvey@php.net" @@ -5623,7 +5660,13 @@ ], "description": "Provides functionality to recursively process PHP variables", "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2017-03-03T06:23:57+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:34:24+00:00" }, { "name": "sebastian/resource-operations", @@ -5752,16 +5795,16 @@ }, { "name": "symfony/browser-kit", - "version": "v4.4.16", + "version": "v4.4.17", "source": { "type": "git", "url": "https://github.com/symfony/browser-kit.git", - "reference": "99b640fd5d06877e3242ba0393b40a7877dfe534" + "reference": "5f11947e9ec072ac32c605c07cb22522c30f4b28" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/99b640fd5d06877e3242ba0393b40a7877dfe534", - "reference": "99b640fd5d06877e3242ba0393b40a7877dfe534", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/5f11947e9ec072ac32c605c07cb22522c30f4b28", + "reference": "5f11947e9ec072ac32c605c07cb22522c30f4b28", "shasum": "" }, "require": { @@ -5816,20 +5859,20 @@ "type": "tidelift" } ], - "time": "2020-10-24T11:50:19+00:00" + "time": "2020-10-28T20:42:29+00:00" }, { "name": "symfony/config", - "version": "v5.1.8", + "version": "v5.2.0", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "11baeefa4c179d6908655a7b6be728f62367c193" + "reference": "fa1219ecbf96bb5db59f2599cba0960a0d9c3aea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/11baeefa4c179d6908655a7b6be728f62367c193", - "reference": "11baeefa4c179d6908655a7b6be728f62367c193", + "url": "https://api.github.com/repos/symfony/config/zipball/fa1219ecbf96bb5db59f2599cba0960a0d9c3aea", + "reference": "fa1219ecbf96bb5db59f2599cba0960a0d9c3aea", "shasum": "" }, "require": { @@ -5891,20 +5934,20 @@ "type": "tidelift" } ], - "time": "2020-10-24T12:01:57+00:00" + "time": "2020-11-16T18:02:40+00:00" }, { "name": "symfony/console", - "version": "v4.4.16", + "version": "v4.4.17", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "20f73dd143a5815d475e0838ff867bce1eebd9d5" + "reference": "c8e37f6928c19816437a4dd7bf16e3bd79941470" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/20f73dd143a5815d475e0838ff867bce1eebd9d5", - "reference": "20f73dd143a5815d475e0838ff867bce1eebd9d5", + "url": "https://api.github.com/repos/symfony/console/zipball/c8e37f6928c19816437a4dd7bf16e3bd79941470", + "reference": "c8e37f6928c19816437a4dd7bf16e3bd79941470", "shasum": "" }, "require": { @@ -5977,20 +6020,20 @@ "type": "tidelift" } ], - "time": "2020-10-24T11:50:19+00:00" + "time": "2020-11-28T10:15:42+00:00" }, { "name": "symfony/css-selector", - "version": "v4.4.16", + "version": "v4.4.17", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "719506cffda9dba80c75d94ac50f1a2561520e4f" + "reference": "5e6efcb6e5d120249da366417e2517c55b50c931" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/719506cffda9dba80c75d94ac50f1a2561520e4f", - "reference": "719506cffda9dba80c75d94ac50f1a2561520e4f", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/5e6efcb6e5d120249da366417e2517c55b50c931", + "reference": "5e6efcb6e5d120249da366417e2517c55b50c931", "shasum": "" }, "require": { @@ -6039,20 +6082,20 @@ "type": "tidelift" } ], - "time": "2020-10-24T11:50:19+00:00" + "time": "2020-10-28T20:42:29+00:00" }, { "name": "symfony/dependency-injection", - "version": "v5.1.8", + "version": "v5.2.0", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "829ca6bceaf68036a123a13a979f3c89289eae78" + "reference": "98cec9b9f410a4832e239949a41d47182862c3a4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/829ca6bceaf68036a123a13a979f3c89289eae78", - "reference": "829ca6bceaf68036a123a13a979f3c89289eae78", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/98cec9b9f410a4832e239949a41d47182862c3a4", + "reference": "98cec9b9f410a4832e239949a41d47182862c3a4", "shasum": "" }, "require": { @@ -6123,7 +6166,7 @@ "type": "tidelift" } ], - "time": "2020-10-27T10:11:13+00:00" + "time": "2020-11-28T11:24:18+00:00" }, { "name": "symfony/deprecation-contracts", @@ -6191,7 +6234,7 @@ }, { "name": "symfony/dom-crawler", - "version": "v4.4.16", + "version": "v4.4.17", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", @@ -6261,16 +6304,16 @@ }, { "name": "symfony/event-dispatcher", - "version": "v4.4.16", + "version": "v4.4.17", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "4204f13d2d0b7ad09454f221bb2195fccdf1fe98" + "reference": "f029d6f21eac61ab23198e7aca40e7638e8c8924" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/4204f13d2d0b7ad09454f221bb2195fccdf1fe98", - "reference": "4204f13d2d0b7ad09454f221bb2195fccdf1fe98", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/f029d6f21eac61ab23198e7aca40e7638e8c8924", + "reference": "f029d6f21eac61ab23198e7aca40e7638e8c8924", "shasum": "" }, "require": { @@ -6337,7 +6380,7 @@ "type": "tidelift" } ], - "time": "2020-10-24T11:50:19+00:00" + "time": "2020-10-31T22:44:29+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -6417,16 +6460,16 @@ }, { "name": "symfony/filesystem", - "version": "v5.1.8", + "version": "v5.2.0", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "df08650ea7aee2d925380069c131a66124d79177" + "reference": "bb92ba7f38b037e531908590a858a04d85c0e238" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/df08650ea7aee2d925380069c131a66124d79177", - "reference": "df08650ea7aee2d925380069c131a66124d79177", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/bb92ba7f38b037e531908590a858a04d85c0e238", + "reference": "bb92ba7f38b037e531908590a858a04d85c0e238", "shasum": "" }, "require": { @@ -6472,20 +6515,20 @@ "type": "tidelift" } ], - "time": "2020-10-24T12:01:57+00:00" + "time": "2020-11-12T09:58:18+00:00" }, { "name": "symfony/finder", - "version": "v4.4.16", + "version": "v4.4.17", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "26f63b8d4e92f2eecd90f6791a563ebb001abe31" + "reference": "9f1d1d883b79a91ef320c0c6e803494e042ef36e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/26f63b8d4e92f2eecd90f6791a563ebb001abe31", - "reference": "26f63b8d4e92f2eecd90f6791a563ebb001abe31", + "url": "https://api.github.com/repos/symfony/finder/zipball/9f1d1d883b79a91ef320c0c6e803494e042ef36e", + "reference": "9f1d1d883b79a91ef320c0c6e803494e042ef36e", "shasum": "" }, "require": { @@ -6530,7 +6573,7 @@ "type": "tidelift" } ], - "time": "2020-10-24T11:50:19+00:00" + "time": "2020-11-17T19:45:34+00:00" }, { "name": "symfony/polyfill-php73", @@ -6610,16 +6653,16 @@ }, { "name": "symfony/process", - "version": "v4.4.16", + "version": "v4.4.17", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "2f4b049fb80ca5e9874615a2a85dc2a502090f05" + "reference": "ec1482f13d53911a8a32e54ba6f9a3b43a57d943" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/2f4b049fb80ca5e9874615a2a85dc2a502090f05", - "reference": "2f4b049fb80ca5e9874615a2a85dc2a502090f05", + "url": "https://api.github.com/repos/symfony/process/zipball/ec1482f13d53911a8a32e54ba6f9a3b43a57d943", + "reference": "ec1482f13d53911a8a32e54ba6f9a3b43a57d943", "shasum": "" }, "require": { @@ -6664,7 +6707,7 @@ "type": "tidelift" } ], - "time": "2020-10-24T11:50:19+00:00" + "time": "2020-11-02T15:10:16+00:00" }, { "name": "symfony/service-contracts", diff --git a/application/frontend/controllers/AuthController.php b/application/frontend/controllers/AuthController.php index 2003d374..e64397bb 100644 --- a/application/frontend/controllers/AuthController.php +++ b/application/frontend/controllers/AuthController.php @@ -47,8 +47,7 @@ public function behaviors() public function actionLogin() { if ( ! \Yii::$app->user->isGuest) { - $afterLogin = $this->getAfterLoginUrl($this->getReturnTo()); - return $this->redirect($afterLogin); + return $this->redirect($this->getAfterLoginUrl($this->getReturnTo())); } /* @@ -63,7 +62,12 @@ public function actionLogin() try { $clientId = Utils::getClientIdOrFail(); } catch (\Exception $e) { - throw new BadRequestHttpException(\Yii::t('app', 'Auth.MissingClientID'), 1545316879); + \Yii::warning(\Yii::t('app', 'Auth.MissingClientID')); + + // This condition happens if a user sits on the IDP login prompt long + // enough for the session to expire. As a workaround, redirect back to + // the profile UI home page, which should restart the login process. + return $this->redirect(\Yii::$app->params['uiUrl']); } /* diff --git a/application/run-tests-api.sh b/application/run-tests-api.sh index d3f13a4e..80f6053b 100755 --- a/application/run-tests-api.sh +++ b/application/run-tests-api.sh @@ -3,7 +3,7 @@ set -x # Install composer dev dependencies cd /data -runny composer install --prefer-dist --no-interaction --optimize-autoloader +runny composer install --prefer-dist --no-interaction --optimize-autoloader --no-progress mkdir -p /data/runtime/mail diff --git a/application/run-tests-integration.sh b/application/run-tests-integration.sh index e6705a10..df8444a5 100755 --- a/application/run-tests-integration.sh +++ b/application/run-tests-integration.sh @@ -4,7 +4,7 @@ set -e # Install composer dev dependencies cd /data -composer install --prefer-dist --no-interaction --optimize-autoloader +composer install --prefer-dist --no-interaction --optimize-autoloader --no-progress # Run behat integration tests ./vendor/bin/behat --config=tests/features/behat.yml --strict --profile=integration diff --git a/application/run-tests.sh b/application/run-tests.sh index 9bd2ba0e..5e260368 100755 --- a/application/run-tests.sh +++ b/application/run-tests.sh @@ -4,7 +4,7 @@ set -e # Install composer dev dependencies cd /data -composer install --prefer-dist --no-interaction --optimize-autoloader +composer install --prefer-dist --no-interaction --optimize-autoloader --no-progress mkdir -p /data/runtime/mail diff --git a/application/tests/api/AuthCest.php b/application/tests/api/AuthCest.php index 777e729f..5551f924 100644 --- a/application/tests/api/AuthCest.php +++ b/application/tests/api/AuthCest.php @@ -10,7 +10,7 @@ public function test1(ApiTester $I) $I->wantTo('check response when making a GET request for logging in with no client_id'); $I->stopFollowingRedirects(); $I->sendGET('/auth/login'); - $I->seeResponseCodeIs(400); + $I->seeResponseCodeIs(302); } public function test2(ApiTester $I) diff --git a/application/versions.json b/application/versions.json new file mode 100644 index 00000000..f8eabd67 --- /dev/null +++ b/application/versions.json @@ -0,0 +1,25 @@ +adldap2/adldap2 v10.3.1 A PHP LDAP Package for humans. +behat/behat v3.8.1 Scenario-oriented BDD framework for PHP +codeception/codeception 2.4.5 BDD-style testing framework +codeception/specify 0.4.6 BDD code blocks for PHPUnit and Codeception +codeception/verify 0.4.0 BDD assertion library for PHPUnit +codemix/yii2-streamlog 1.3.1 A Yii 2 log target for streams in URL format +fillup/fake-bower-assets 2.0.9 Use Composer "replace" to fake out installing bower-asset dependencies ... +google/apiclient v2.8.3 Client library for Google APIs +google/recaptcha 1.2.4 Client library for reCAPTCHA, a free service that protects websites fro... +icawebdesign/hibp-php 3.1.0 PHP library for accessing the Have I Been Pwned API. +phpunit/phpunit 6.5.14 The PHP Unit Testing framework. +roave/security-advisories dev-master 676668e Prevents installation of composer packages with known security vulnerab... +silinternational/email-service-php-client 2.2.0 PHP client to interact with our Email Service API: https://github.com/s... +silinternational/idp-id-broker-php-client 3.1.0 PHP client to interact with our IdP ID Broker's API: https://github.com... +silinternational/php-env 2.1.1 Simple PHP library for getting (or requiring) environment variables, de... +silinternational/yii2-codeception dev-master 3fc6968 Patches to implement nice features of yii2-codeception since it was aba... +silinternational/yii2-email-log-target 1.0.1 Yii2 log target for sending data to email without trace information +silinternational/yii2-json-log-targets 2.0.0 A collection of Yii2 log targets that format the log message as a JSON ... +silinternational/zxcvbn-api-client-php 2.0 PHP client library for interacting with Zxcvbn API. See https://github.... +simplesamlphp/saml2 v3.4.5 SAML2 PHP library from SimpleSAMLphp +yiisoft/yii2 2.0.39.3 Yii PHP Framework Version 2 +yiisoft/yii2-debug 2.1.15 The debugger extension for the Yii framework +yiisoft/yii2-faker 2.0.5 Fixture generator. The Faker integration for the Yii framework. +yiisoft/yii2-gii 2.2.1 The Gii extension for the Yii framework +yiisoft/yii2-swiftmailer 2.1.2 The SwiftMailer integration for the Yii framework diff --git a/dockerbuild/broker/run-broker.sh b/dockerbuild/broker/run-broker.sh index a701fb8a..c619f1ac 100755 --- a/dockerbuild/broker/run-broker.sh +++ b/dockerbuild/broker/run-broker.sh @@ -11,7 +11,7 @@ trap 'kill ${!}; term_handler' SIGTERM # Try to install composer dev dependencies cd /data -composer install --no-interaction --no-scripts +composer install --no-interaction --no-scripts --no-progress # If that failed, exit. rc=$?; if [[ $rc != 0 ]]; then exit $rc; fi diff --git a/dockerbuild/ldap/Dockerfile b/dockerbuild/ldap/Dockerfile index d9e9cab6..3664337c 100644 --- a/dockerbuild/ldap/Dockerfile +++ b/dockerbuild/ldap/Dockerfile @@ -1,14 +1,19 @@ -FROM silintl/openldap +FROM centos:7 + +ENV DEBUG_LEVEL=256 + +RUN /usr/bin/yum update -y && /usr/bin/yum install -y openldap-servers openldap-clients nc + +EXPOSE 389 636 +CMD slapd -u ldap -g ldap -d3 -RUN yum install -y nc - COPY idp.pw.api.* /etc/openldap/certs/ COPY *.schema /etc/openldap/schema/ COPY gisGroup.ldif /etc/openldap/schema/ COPY gisPerson.ldif /etc/openldap/schema/ -COPY slapd.conf /etc/openldap/ +COPY slapd.conf /etc/openldap/ COPY run_ldap.sh /data/ COPY load_ldap.sh /data/ @@ -18,4 +23,4 @@ COPY domain.ldif /root/ COPY fakepeople.ldif /root/ COPY fakerep.ldif /root/ -CMD /data/run_ldap.sh \ No newline at end of file +CMD /data/run_ldap.sh