rack / rack-session

MIT License
33 stars 14 forks source link

Support UTF-8 data when using the JSON serializer #39

Closed jcmfernandes closed 3 months ago

jcmfernandes commented 9 months ago

Closes #38

jcmfernandes commented 9 months ago

The specs don't cover the setup V1 encryptor+JSON serializer. I feel this is OK now, as the V1 encryptor is battle-tested. I'm happy to hear otherwise.

Somewhat related: assuming that most use the default V1 serializer - Marshal - it's important to note that the JSON serializer can introduce subtle changes. A key one is that it transforms symbols into strings. This leads me to the question: should we default to the V2 encryptor in the next release or make it opt-in instead?

ioquatix commented 9 months ago

We could consider using symbolize_names or similar when using JSON. I think it's less surprising in most cases.

jcmfernandes commented 9 months ago

We could consider using symbolize_names or similar when using JSON. I think it's less surprising in most cases.

We could. The bigger point is that small differences are unavoidable. We could also support Marshal in encryptor V2. I deliberately stayed away from it, but it's a decision we can revisit.

ioquatix commented 3 months ago

Thanks for persisting with this, I'll review it today.