Skip to content

feat(jans-auth-server): rate limit - use guava cache to auto-expire buckets during high load #11054 #11059

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

Merged
merged 1 commit into from
Mar 19, 2025

Conversation

yuriyz
Copy link
Contributor

@yuriyz yuriyz commented Mar 19, 2025

Description

feat(jans-auth-server): rate limit - use guava cache to auto-expire buckets during high load

Target issue

closes #11054

Test and Document the changes

  • Static code analysis has been run locally and issues have been fixed
  • Relevant unit and integration tests have been added/updated

Please check the below before submitting your PR. The PR will not be merged if there are no commits that start with docs: to indicate documentation changes or if the below checklist is not selected.

  • I confirm that there is no impact on the docs due to the code changes in this PR.

…uckets during high load #11054

Signed-off-by: YuriyZ <yzabrovarniy@gmail.com>
@yuriyz yuriyz enabled auto-merge (squash) March 19, 2025 11:08
@mo-auto mo-auto added comp-jans-auth-server Component affected by issue or PR comp-jans-linux-setup Component affected by issue or PR kind-feature Issue or PR is a new feature request labels Mar 19, 2025
@yuriyz yuriyz merged commit 01a0a9f into main Mar 19, 2025
2 checks passed
@yuriyz yuriyz deleted the jans-auth-server-11054 branch March 19, 2025 11:31
olehbozhok pushed a commit that referenced this pull request Mar 20, 2025
…uckets during high load #11054 (#11059)

Signed-off-by: YuriyZ <yzabrovarniy@gmail.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>
olehbozhok added a commit that referenced this pull request Mar 26, 2025
…cipal as Object v. JWT (#11035)

* chore(jans-cedarling): rename `ResourceData` to `EntityData`

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* chore(jans-cedarling): rename method `build_entities` to `build_token_entities`

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* feat(jans-cedarling): add `authorize_unverified` method

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* chore(jans-cedarling): update python binding errors

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* chore(jans-cedarling): fix clippy warnings

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* test(jans-cedarling): fix unit tests

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* chore(jans-cedarling): remove commented code

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* chore(jans-cedarling): add typealias `TypeName`

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* chore(jans-cedarling): remove allocate vector

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* chore(jans-cedarling): rename method `authorize_unverified` to `authorize_unsigned`

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* chore(jans-cedarling): rename error `UnverifiedPrincipalRequestValidation` to `InvalidPrincipal`

also removed `WorkloadRequestValidation` and `UserRequestValidation`

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* test(jans-cedarling): update python test case

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* test(jans-cedarling): update rust test cases related to `AuthorizeResult`

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* chore(jans-cedarling): rename `unverified` to `unsigned`

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* chore(jans-cedarling): add `authorize_unsigned` to blocking client
and rename `RequestUnverified` to `RequestUnsigned`

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* chore(jans-cedarling): fix parsing bool type from cedar schema

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* test(jans-cedarling): add test case to check authorize_unsigned

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* feat(jans-cedarling):  add getting principal decision result by entity uid

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* fix(jans-cedarling): fix documentation CEDARLING_POLICY_STORE_LOCAL can hold only string (#11015)

* docs(jans-cedarling): update usage of `CEDARLING_POLICY_STORE_LOCAL` in documentation

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* docs(jans-cedarling): fix python documentation usage `CEDARLING_POLICY_STORE_LOCAL_FN` env var

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

---------

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* ci: publish packages workflow is faililng on wasm (#11009)

ci: fix workflow

Signed-off-by: moabu <47318409+moabu@users.noreply.github.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* feat(cloud-native): create utility image to run commands for cluster (#10987)

* feat(cloud-native): create utility image to run commands for cluster

Signed-off-by: iromli <isman.firmansyah@gmail.com>

* feat(cloud-native): move features from certmanager to cloudtools

Signed-off-by: iromli <isman.firmansyah@gmail.com>

* feat(cloudtools): rearrange commands

Signed-off-by: iromli <isman.firmansyah@gmail.com>

* chore: fix typo in CLI usage

Signed-off-by: iromli <isman.firmansyah@gmail.com>

* docs: adjust cloudtools README

Signed-off-by: iromli <isman.firmansyah@gmail.com>

* ci: introduce docker-jans-cloudtools as drop-in replacement for certmanager

Signed-off-by: iromli <isman.firmansyah@gmail.com>

* ci: remove duplicated cloudtools

Signed-off-by: iromli <isman.firmansyah@gmail.com>

---------

Signed-off-by: iromli <isman.firmansyah@gmail.com>
Co-authored-by: Mohammad Abudayyeh <47318409+moabu@users.noreply.github.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* fix(docs): review and update Cedarling WASM document (#10988)

* fix(docs): update cedarling wasm doc

Signed-off-by: ossdhaval <343411+ossdhaval@users.noreply.github.com>

* fix(docs): flow update cedarling wasm doc

Signed-off-by: ossdhaval <343411+ossdhaval@users.noreply.github.com>

* fix(docs): update requirements of cedarling wasm doc

Signed-off-by: ossdhaval <343411+ossdhaval@users.noreply.github.com>

* fix(docs): update flow of cedarling wasm doc

Signed-off-by: ossdhaval <343411+ossdhaval@users.noreply.github.com>

* fix(docs): update cedarling wasm doc

Signed-off-by: ossdhaval <343411+ossdhaval@users.noreply.github.com>

* fix(docs): proofreading

Signed-off-by: ossdhaval <343411+ossdhaval@users.noreply.github.com>

---------

Signed-off-by: ossdhaval <343411+ossdhaval@users.noreply.github.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* Keycloak(docs): Update Keycloak SAML SSO docs. (#10995)

* Keycloak(docs): update file for Jans SAML docs.

Signed-off-by: Mostafejur Rahman <mrraju.ice.iu@gmail.com>

* Keycloak(docs): Update keycloak-saml-sso.md

Signed-off-by: Mostafejur Rahman <mrraju.ice.iu@gmail.com>

* docs(Keycloak): Update keycloak-saml-sso.md

Signed-off-by: Mostafejur Rahman <mrraju.ice.iu@gmail.com>

---------

Signed-off-by: Mostafejur Rahman <mrraju.ice.iu@gmail.com>
Co-authored-by: Dhaval D <343411+ossdhaval@users.noreply.github.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* fix(docs): moving contributor license agreement to GitHub (#11034)

* Moving contributor license agreement to Github.

Signed-off-by: Michael Schwartz <mike@gluu.org>

* fix(docs): update CLA link

Signed-off-by: ossdhaval <343411+ossdhaval@users.noreply.github.com>

* fix(docs): remove old CLA PDF

Signed-off-by: ossdhaval <343411+ossdhaval@users.noreply.github.com>

---------

Signed-off-by: Michael Schwartz <mike@gluu.org>
Signed-off-by: ossdhaval <343411+ossdhaval@users.noreply.github.com>
Co-authored-by: ossdhaval <343411+ossdhaval@users.noreply.github.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* feat(jans-auth-server): introduce rate limit support for DCR (#10991)

* feat(jans-auth-server): draft for rate limit service

Signed-off-by: YuriyZ <yzabrovarniy@gmail.com>

* feat(jans-auth-server): rate limit - added cached body request

Signed-off-by: YuriyZ <yzabrovarniy@gmail.com>

* feat(jans-auth-server): rate limit - added main filter

Signed-off-by: YuriyZ <yzabrovarniy@gmail.com>

* feat(jans-auth-server): added rate_limit feature flag

Signed-off-by: YuriyZ <yzabrovarniy@gmail.com>

* feat(jans-auth-server): missed enum

Signed-off-by: YuriyZ <yzabrovarniy@gmail.com>

* feat(jans-auth-server): added rate limit exception with type

Signed-off-by: YuriyZ <yzabrovarniy@gmail.com>

* feat(jans-auth-server): added bucket4j dependency for easy rate limiting support

Signed-off-by: YuriyZ <yzabrovarniy@gmail.com>

* feat(jans-auth-server): code improvements for rate limit filter

Signed-off-by: YuriyZ <yzabrovarniy@gmail.com>

* feat(jans-auth-server): added rate limit filter to web descriptor

Signed-off-by: YuriyZ <yzabrovarniy@gmail.com>

* feat(jans-auth-server): added rate limit feature flag to installation and test data loader

Signed-off-by: YuriyZ <yzabrovarniy@gmail.com>

* test(jans-auth-server): fixed ssa create test

Signed-off-by: YuriyZ <yzabrovarniy@gmail.com>

* test(jans-auth-server): covered rate limit service with test

Signed-off-by: YuriyZ <yzabrovarniy@gmail.com>

* test(jans-auth-server): added new test to testng

Signed-off-by: YuriyZ <yzabrovarniy@gmail.com>

* doc(jans-auth-server): added rate limit documentation

Signed-off-by: YuriyZ <yzabrovarniy@gmail.com>

---------

Signed-off-by: YuriyZ <yzabrovarniy@gmail.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* fix(charts): broken istio integration (#11041)

Signed-off-by: iromli <isman.firmansyah@gmail.com>
Co-authored-by: Mohammad Abudayyeh <47318409+moabu@users.noreply.github.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* fix(jans-cli-tui): properties acrMappings (#11048)

Signed-off-by: Mustafa Baser <mbaser@mail.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* feat(jans-auth-server): rate limit - use guava cache to auto-expire buckets during high load #11054 (#11059)

Signed-off-by: YuriyZ <yzabrovarniy@gmail.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* test(jans-auth-server): SsaCreateTest is failing on jenkins #11078 (#11079)

Signed-off-by: YuriyZ <yzabrovarniy@gmail.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* chore(jans-cedarling): add python bindings

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* test(jans-cedarling): add python unit test

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* chore(jans-cedarling): update WASM bindings and tests

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* chore(jans-cedarling): fix clippy issues

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* chore(jans-cedarling): update formatting in rust file

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* feat(jans-cedarling): update uniffi bindings

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* docs(jans-cedarling): update docs that user can use cedar-policy uid in JsonLogic

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* docs(jans-cedarling): update wasm typescript interface

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* docs(jans-cedarling): add WASM example how to call `authorize_unsigned` method

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* chore(jans-cedarling): fix logging

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* docs(jans-cedarling): fix markdown linter errors

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* chore(jans-cedarling): update python components (#11112)

Signed-off-by: SafinWasi <6601566+SafinWasi@users.noreply.github.com>

* docs(jans-cedarling): update documentation

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* chore(jans-cedarling): update python example to use `authorize_unsigned`

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* docs(jans-cedarling): update python documentation

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* chore(jans-cedarling): update python components (#11112)

Signed-off-by: SafinWasi <6601566+SafinWasi@users.noreply.github.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

* chore(jans-cedarling): update python example to use `authorize_unsigned`

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>


Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>

---------

Signed-off-by: Oleh Bozhok <olehbozhok@gmail.com>
Signed-off-by: SafinWasi <6601566+SafinWasi@users.noreply.github.com>
Co-authored-by: Mohammad Abudayyeh <47318409+moabu@users.noreply.github.com>
Co-authored-by: Isman Firmansyah <iromli@users.noreply.github.com>
Co-authored-by: Dhaval D <343411+ossdhaval@users.noreply.github.com>
Co-authored-by: Mostafejur Rahman <mrraju.ice.iu@gmail.com>
Co-authored-by: Michael Schwartz <mike@gluu.org>
Co-authored-by: YuriyZ <yzabrovarniy@gmail.com>
Co-authored-by: Devrim <devrimyatar@gluu.org>
Co-authored-by: Safin Wasi <6601566+SafinWasi@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
comp-jans-auth-server Component affected by issue or PR comp-jans-linux-setup Component affected by issue or PR kind-feature Issue or PR is a new feature request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

feat(jans-auth-server): rate limit - use guava cache to auto-expire buckets during high load
4 participants