Commit graph

86 commits

Author SHA1 Message Date
Santiago Bartesaghi
6db4a73253
Drop Dalli 2 support (#679) 2024-12-16 09:56:09 -03:00
Santiago Bartesaghi
0d40ea6538
Add Rails 7.2 to CI (#671)
* Add Rails 7.2 to CI

* Fix CI
2024-10-15 15:00:41 -03:00
Santiago Bartesaghi
b6ce502b14
Add test to prevent regressions (#656) 2024-05-03 20:49:45 -03:00
Santiago Bartesaghi
52ce45db11
Refactor notifications checks in tests (#657) 2024-05-03 20:49:03 -03:00
Santiago Bartesaghi
5124a172ac
Fix Rails test not being ran (#649) 2024-01-10 12:10:56 -03:00
Santiago Bartesaghi
cb82b9f873
ci: freeze time in more specs (#643)
* ci: freeze time in more specs

* Introduce within_same_period helper method

---------

Co-authored-by: Gonzalo <456459+grzuy@users.noreply.github.com>
2024-01-10 11:55:37 -03:00
Santiago Bartesaghi
3543f61b64
Fix #588 don't fail if request.ip is missing (#630)
* Fix #588 don't fail if request.ip is missing

* Fix Rails 4 suite

* Improve tests

---------

Co-authored-by: Gonzalo <456459+grzuy@users.noreply.github.com>
2023-10-18 00:19:29 +00:00
Santiago Bartesaghi
e9f472786a
Update rubocop (#629)
* Upgrade rubocop gem

* Fix obsolete parameter

* Fix Lint/MissingSuper

* Fix Lint/ConstantDefinitionInBlock

* Fix Layout/EmptyLineBetweenDefs

* Add rubocop-minitest

* Add rubocop-rake

* Upgrade rubocop-performance
2023-10-16 20:04:35 -03:00
Mitchell Henke
9a7815c332
Remove support for unmaintained ActiveSupport::Cache::RedisStore (#625)
* remove support for unmaintained ActiveSupport::Cache::RedisStore

* ci: removes active_support_redis_store matrix job

* test: removes unecessary redis-activesupport require

* test: removes dead code

* fix typo

---------

Co-authored-by: Gonzalo <456459+grzuy@users.noreply.github.com>
2023-10-14 11:29:19 -03:00
Samuel Williams
b708de32f3
Support Rack 3. (#586) 2023-07-25 15:16:43 +12:00
Gonzalo
aaeff6d0ae
feat: deprecate throttled_response and blocklisted_response 2022-01-29 15:22:19 -03:00
Gonzalo
8bf9d4efad
refactor: attempt to make method name more self explanatory and clear 2022-01-29 15:06:13 -03:00
thomas morgan
0fbfda0146 test against dalli 3.0 2021-11-16 10:04:16 -07:00
Gonzalo
55d5e370fd
test: update ruby and rails versions 2020-12-27 16:57:15 -03:00
Nikolay Rys
f79759717a Feature proposal: Request instead of Env in callbacks (#419)
feat: allow easy access to the request object in the callbacks
2019-12-17 14:44:08 -03:00
fatkodima
2527b37221 Auto include middleware for older railses 2019-10-31 14:35:29 +02:00
Gonzalo Rodriguez
a103ff4819
Merge pull request #457 from kickstarter/fix_load
fix: avoid unintended effects on load_config_initializers and other gems load order
2019-10-30 15:13:05 -03:00
Gonzalo Rodriguez
e3056e737f
fix: avoid unintended effects on load_config_initializers and other gems load order
Because of the sort algorithm rails uses to satisfy `after` and `before`
constraints, gems can have unintended effects on others. See
0a120a818d

Prefer making rack-attack middleware idempotent instead of relying on
the load order and the contents of the middleware stack too much.

closes #452
closes #456
2019-10-29 15:45:26 -03:00
fatkodima
a34c187dda Allow to configure Retry-After header for default throttled_response handler 2019-10-17 00:26:13 +03:00
Gonzalo Rodriguez
1167c65ba6
Don't autoplug middleware for untested rails versions 2019-10-12 18:10:10 -03:00
fatkodima
f22b24cbc5 Do not auto-plug for rails < 5 2019-10-08 13:08:07 +03:00
fatkodima
bdfb01ab5b Changes and tests 2019-10-08 12:29:25 +03:00
Gonzalo Rodriguez
8fafa7602b
style: fix Style/BlockDelimiters cop check 2019-08-02 15:24:17 -03:00
Gonzalo Rodriguez
f5a352b8f9
style: limit line length to 120 columns 2019-08-02 10:51:53 -03:00
Gonzalo Rodriguez
7dbb490c01
style: enabled Style/EmptyMethod rubocop 2019-03-01 21:09:46 -03:00
Gonzalo Rodriguez
f772d0b3cd
Merge pull request #406 from grzuy/optional_name
Make blocklist/safelist name argument optional
2019-02-28 21:01:55 -03:00
Gonzalo Rodriguez
6addaa11d0
feat: make blocklist/safelist name argument optional 2019-02-24 21:04:51 -03:00
Gonzalo Rodriguez
6c6dfb06e3
feat: match ActiveSupport Instrumentation event name format spec 2019-02-24 20:19:38 -03:00
Gonzalo Rodriguez
8cbd3dc0fc
feat: improve MisconfiguredStoreError exception message to aid debugging 2018-10-11 11:44:10 -03:00
Gonzalo Rodriguez
014f74b95d
Merge pull request #387 from grzuy/fix_redis_3_and_memory_store
[Fixes #355] Fix unexpected error when using redis 3 and any store which is not proxied
2018-10-08 11:33:34 -03:00
Gonzalo Rodriguez
82c0a17dd4
Test against Redis 3.x 2018-09-30 22:02:33 -03:00
Gonzalo Rodriguez
91dbb52235
Remove unwrapping 2018-09-30 13:32:08 -03:00
Jonathan del Strother
5cdc15b35a Add a proxy to deal with ActiveSupport::Cache::MemCacheStore
If connection pooling is used with AS::Cache::MemCacheStore,
unwrap_active_support_stores wouldn't return the underlying dalli instance(s),
and so Rack::Attack.store would be the bare unproxied MemCacheStore instance.

Calling write then increment would silently fail because :raw wasn't used.

With this commit, we no longer try to unwrap AS::Cache::MemCacheStore instances.
2018-09-03 12:00:02 +01:00
Jonathan del Strother
03b8ce6f9e
Refactor the "doesn't leak keys" spec 2018-08-30 21:52:13 -03:00
Gonzalo Rodriguez
b40b5718dc
rubocop --auto-correct 2018-06-29 15:41:36 -03:00
Gonzalo Rodriguez
e50bfbebaa
Acceptance test plain redis as a cache store backend 2018-06-29 15:41:04 -03:00
Gonzalo Rodriguez
8315a1e7e1
Remove support for unmaintained ruby 2.2 2018-06-28 17:08:15 -03:00
Gonzalo Rodriguez
8802ebfbaf
Merge branch '255-correct-object-for-instrumentation' 2018-06-28 16:40:08 -03:00
Gonzalo Rodriguez
a72bfb5fc7
Only require redis stores when running their respective appraisal 2018-06-22 18:55:27 -03:00
Gonzalo Rodriguez
bd2ade8977
Only require connection_pool running connection_pool appraisal 2018-06-22 17:45:58 -03:00
Gonzalo Rodriguez
79de0d53e1
Only require dalli when running dalli appraisal 2018-06-22 17:45:03 -03:00
Gonzalo Rodriguez
9cc49b4760
Acceptance test ConnectionPool with Dalli::Client (via connection_pool and dalli) as cache store backend 2018-06-22 14:59:44 -03:00
Gonzalo Rodriguez
bcc1f5857e
Acceptance test ActiveSupport::Cache::MemoryStore (via activesupport) as cache store backend 2018-06-22 14:58:00 -03:00
Gonzalo Rodriguez
1f05ff30d5
Fix namespace of test file names 2018-06-22 14:55:22 -03:00
Gonzalo Rodriguez
831e4e9e97
Acceptance test Dalli::Client (via dalli) as cache store backend 2018-06-22 14:55:22 -03:00
Gonzalo Rodriguez
bca253c674
Acceptance test ActiveSupport::Cache::DalliStore (via dalli) as cache store backend 2018-06-22 14:54:46 -03:00
Gonzalo Rodriguez
93b1bf4c86
Acceptance test Redis::Store (redis-store) as cache store backend 2018-06-22 14:53:06 -03:00
Gonzalo Rodriguez
92f3b7fbd0
Acceptance test ActiveSupport::Cache::RedisStore (redis-activesupport) as cache store backend 2018-06-22 14:53:05 -03:00
Gonzalo Rodriguez
e830804586
Acceptance test pooled RedisCacheStore as a backend store 2018-06-20 17:47:21 -03:00
Gonzalo Rodriguez
7438e5122e
Non-leak acceptance test should only care about presence, not exact value 2018-06-19 14:00:20 -03:00