]> 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)
committerFridolin Somers <fridolin.somers@biblibre.com>
Tue, 21 Sep 2021 06:21:00 +0000 (20:21 -1000)
commitf44b2d94c447f23636a0aaaac6cf49e15b1dbc8b
tree1af0d274362d7dde0a5838aa49227f5811cb8ef1
parent1dd5b493ac14df87a04539136ff82a4f959dce67
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>
Koha/ApiKey.pm
t/db_dependent/Koha/ApiKey.t [new file with mode: 0755]
t/db_dependent/Koha/ApiKeys.t [deleted file]