-
Notifications
You must be signed in to change notification settings - Fork 211
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
JWT issuer validation #6175
JWT issuer validation #6175
Conversation
c5c28c9
to
b656996
Compare
8d2f033
to
ff4e113
Compare
b2bc164
to
a66369a
Compare
As noted above, kept the old tables but moved them under "Legacy" namespace. We can work with them if needed but kept them explicitly obsolete. |
66dcd1e
to
a5d6e0b
Compare
a5d6e0b
to
0097276
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Partial review - need to take another look at the C++ changes.
3cd6faf
to
f2ebf24
Compare
f2ebf24
to
fdbf221
Compare
I've run jwt perf test on main VS branch
Results main
Result branch
Seems like a pretty decent performance hit, will dig up |
However, I don't know how heavy is the typical TX. In the test, we do one append per TX, which might differ from the real-world scenario, and so, I have no clue about the real impact of 25% slower JWT authentication. Meaning, if the auth itself is 10x faster than the request itself - it doesn't really matter, otherwise it might matter. |
One more perf update Removed issuer validation, but left new schema in place. Results
Most likely, the perf impact is
|
@maxtropets you need to rev up the openapi version of the gov schema, run the test again locally, and check in the updated openapi golden file to get it to pass. 25% hit on end-to-end throughput is substantial, but will be offset to some extent by the application being able to remove some of that logic. It would be good to run the same test (full logging) with jwt removed, to compare (the closest we have is basic, but that's a smaller app, and clocks about ~57kTx/s on the CI). It would also be good to run with a profiler to see what exactly makes this worse. But because this change is a correctness fix, I think we merge it now, and investigate separately if there is a way to improve the performance. Ideally we do this now, and figure out quickly if further schema changes are needed or not. Improvements that don't impact the schema can happen in later releases. |
@maxtropets ah one thing we need on this PR is a proper CHANGELOG entry, explaining the change to application developers, and service operators, with details about actions they need to take. |
@achamayou aren't they actually the same test? Seems like the only difference is JWT auth. |
No, there are two subtle differences. One is that the logging API involves JSON wrappers, with extra (de)serialisation/copies. The other is that the logging js app is fairly large (it has lots of endpoints) and so involves loading quite a bit more bytecode at every execution. |
0b10a04
to
6cb0ee5
Compare
Co-authored-by: Eddy Ashton <ashton.eddy@gmail.com>
Eventually closes
Decided to merge together to avoid being split into different releases