okta / okta-sdk-php

PHP SDK for the Okta API
Apache License 2.0
38 stars 71 forks source link

Changing createCacheKey to replace _any_ characters that violate file naming standards #135

Open shazaman23 opened 2 years ago

shazaman23 commented 2 years ago

By default this tool uses a cache pool that creates local files for caching. The existing implementation covers PSR-6 requirements, but there are some issues that can occur when using the defaults if some bad characters are in the URI used to form the cache key (which is used as the filename).

For example, assume an Okta instance of testing.oktapreview.com with a user of test**7@test.com. By making a get for that user with this library, the URI will be testing.oktapreview.com/api/v1/users/test**7@test.com. Based off of the existing code, this name will get transformed to a cache key of testing_oktapreview_com_api_v1_users_test**7_test_com which is an invalid file name.

The change I propose would use the regex for valid filenames by default to create cache keys. Under this setup, the cache key would instead be testing_oktapreview_com_api_v1_users_test__7_test_com which would be valid.

_Note: There are still going to be some problems if people include lots of the invalid characters in their usernames because you could have collisions. For example, user of test**7@test.com and test++7@test.com would both hit the same cache key testing_oktapreview_com_api_v1_users_test__7_test_com_

bretterer commented 2 years ago

Thank you for the PR! This looks great. Just to cover our bases, could you please send in a CLA? you can find it over at developer.okta.com/cla. This MAY fall into "Obvious Fix" category, but I would like to have one anyway.

shazaman23 commented 2 years ago

I sent an email with an attached PDF of the CLA to this email address earlier today: CLA@okta.com

Did it not come through?

shazaman23 commented 2 years ago

Just got confirmation on my signed CLA. @robertdamphousse-okta