]> git.koha-community.org Git - koha.git/commit
Bug 28772: Make Koha::ApiKey->store encrypt the secret
authorTomas Cohen Arazi <tomascohen@theke.io>
Thu, 26 Aug 2021 23:24:43 +0000 (20:24 -0300)
committerWainui Witika-Park <wainuiwitikapark@catalyst.net.nz>
Thu, 16 Sep 2021 02:17:36 +0000 (02:17 +0000)
commitaebe7f2e3377755b601bd9f155e28416fb3475e9
tree4c7d0b49d51f89fa28ee180dfc56ad11fbc6db43
parentb849a0ab4e3b24be86acf03278b95777a0b1f025
Bug 28772: Make Koha::ApiKey->store encrypt the secret

This patch refactors the Koha::ApiKey class so:
- It encrypts the generated secret
- Allows accessing the plain text secret only immediately after the key
  creation (this implies that it won't be accessible if the key is
  fetched from the DB).
- It implements an allow list for attributes, that are not read only.
  Changing any other of them will make ->store throw an exception.
- A method for validating plain text secrets against the encrypted one
  is added.
- A method for accessing the plain text secret is added. Returns undef
  if the object is not 'fresh'.

To test:
1. Apply this patch
2. Run:
   $ kshell
  k$ prove t/db_dependent/Koha/ApiKey.t
=> SUCCESS: Tests pass! Expected behavior is confirmed
3. Sign off :-D

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Wainui Witika-Park <wainuiwitikapark@catalyst.net.nz>
Koha/ApiKey.pm
t/db_dependent/Koha/ApiKey.t [new file with mode: 0755]
t/db_dependent/Koha/ApiKeys.t [deleted file]