Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
2769bd1b
Commit
2769bd1b
authored
Jul 02, 2019
by
GitLab Bot
Browse files
Options
Browse Files
Download
Plain Diff
Automatic merge of gitlab-org/gitlab-ce master
parents
2abbf59d
f6ea17ed
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
53 additions
and
4 deletions
+53
-4
config/initializers/rack_attack_logging.rb
config/initializers/rack_attack_logging.rb
+12
-2
spec/requests/rack_attack_global_spec.rb
spec/requests/rack_attack_global_spec.rb
+41
-2
No files found.
config/initializers/rack_attack_logging.rb
View file @
2769bd1b
...
...
@@ -4,12 +4,22 @@
ActiveSupport
::
Notifications
.
subscribe
(
'rack.attack'
)
do
|
name
,
start
,
finish
,
request_id
,
req
|
if
[
:throttle
,
:blacklist
].
include?
req
.
env
[
'rack.attack.match_type'
]
Gitlab
::
AuthLogger
.
error
(
rack_attack_info
=
{
message:
'Rack_Attack'
,
env:
req
.
env
[
'rack.attack.match_type'
],
ip:
req
.
ip
,
request_method:
req
.
request_method
,
fullpath:
req
.
fullpath
)
}
if
req
.
env
[
'rack.attack.matched'
]
!=
'throttle_unauthenticated'
user_id
=
req
.
env
[
'rack.attack.match_discriminator'
]
user
=
User
.
find_by
(
id:
user_id
)
rack_attack_info
[
:user_id
]
=
user_id
rack_attack_info
[
:username
]
=
user
.
username
unless
user
.
nil?
end
Gitlab
::
AuthLogger
.
error
(
rack_attack_info
)
end
end
spec/requests/rack_attack_global_spec.rb
View file @
2769bd1b
...
...
@@ -102,6 +102,27 @@ describe 'Rack Attack global throttles' do
expect_rejection
{
get
(
*
get_args
)
}
end
it
'logs RackAttack info into structured logs'
do
requests_per_period
.
times
do
get
(
*
get_args
)
expect
(
response
).
to
have_http_status
200
end
arguments
=
{
message:
'Rack_Attack'
,
env: :throttle
,
ip:
'127.0.0.1'
,
request_method:
'GET'
,
fullpath:
get_args
.
first
,
user_id:
user
.
id
,
username:
user
.
username
}
expect
(
Gitlab
::
AuthLogger
).
to
receive
(
:error
).
with
(
arguments
).
once
expect_rejection
{
get
(
*
get_args
)
}
end
end
context
'when the throttle is disabled'
do
...
...
@@ -189,7 +210,15 @@ describe 'Rack Attack global throttles' do
expect
(
response
).
to
have_http_status
200
end
expect
(
Gitlab
::
AuthLogger
).
to
receive
(
:error
).
once
arguments
=
{
message:
'Rack_Attack'
,
env: :throttle
,
ip:
'127.0.0.1'
,
request_method:
'GET'
,
fullpath:
'/users/sign_in'
}
expect
(
Gitlab
::
AuthLogger
).
to
receive
(
:error
).
with
(
arguments
)
get
url_that_does_not_require_authentication
end
...
...
@@ -345,7 +374,17 @@ describe 'Rack Attack global throttles' do
expect
(
response
).
to
have_http_status
200
end
expect
(
Gitlab
::
AuthLogger
).
to
receive
(
:error
).
once
arguments
=
{
message:
'Rack_Attack'
,
env: :throttle
,
ip:
'127.0.0.1'
,
request_method:
'GET'
,
fullpath:
'/dashboard/snippets'
,
user_id:
user
.
id
,
username:
user
.
username
}
expect
(
Gitlab
::
AuthLogger
).
to
receive
(
:error
).
with
(
arguments
).
once
get
url_that_requires_authentication
end
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment