diff options
author | Kamil Trzcinski <ayufan@ayufan.eu> | 2017-05-21 00:50:22 +0300 |
---|---|---|
committer | Kamil Trzcinski <ayufan@ayufan.eu> | 2017-05-21 01:10:42 +0300 |
commit | 897fe9852db8eafe37a70f6b676d42c54f91bcb5 (patch) | |
tree | c8ad46fa043a146916bafbb99580628260b74505 | |
parent | 1c48cd1cb279c6b439fa9102e9a4cb1a24d62d40 (diff) |
Raise exception on invalid pipeline cache
-rw-r--r-- | lib/gitlab/etag_caching/middleware.rb | 2 | ||||
-rw-r--r-- | lib/gitlab/etag_caching/router.rb | 6 | ||||
-rw-r--r-- | lib/gitlab/etag_caching/store.rb | 2 |
3 files changed, 6 insertions, 4 deletions
diff --git a/lib/gitlab/etag_caching/middleware.rb b/lib/gitlab/etag_caching/middleware.rb index 270d67dd50c..8af6591a79e 100644 --- a/lib/gitlab/etag_caching/middleware.rb +++ b/lib/gitlab/etag_caching/middleware.rb @@ -6,7 +6,7 @@ module Gitlab end def call(env) - route = Gitlab::EtagCaching::Router.match(env) + route = Gitlab::EtagCaching::Router.match(env['PATH_INFO']) return @app.call(env) unless route track_event(:etag_caching_middleware_used, route) diff --git a/lib/gitlab/etag_caching/router.rb b/lib/gitlab/etag_caching/router.rb index ba31041d0c1..9cc84c773c3 100644 --- a/lib/gitlab/etag_caching/router.rb +++ b/lib/gitlab/etag_caching/router.rb @@ -38,13 +38,13 @@ module Gitlab 'project_pipelines' ), Gitlab::EtagCaching::Router::Route.new( - %r(^(?!.*(#{RESERVED_WORDS})).*/pipelines/\d+\.json\z), + %r(^(?!.*(#{RESERVED_WORDS_REGEX})).*/pipelines/\d+\.json\z), 'project_pipeline' ) ].freeze - def self.match(env) - ROUTES.find { |route| route.regexp.match(env['PATH_INFO']) } + def self.match(path) + ROUTES.find { |route| route.regexp.match(path) } end end end diff --git a/lib/gitlab/etag_caching/store.rb b/lib/gitlab/etag_caching/store.rb index 27eecd188be..29ffd9b5819 100644 --- a/lib/gitlab/etag_caching/store.rb +++ b/lib/gitlab/etag_caching/store.rb @@ -25,6 +25,8 @@ module Gitlab end def redis_key(key) + raise 'Invalid key' unless Gitlab::EtagCaching::Router.match(key) + "#{REDIS_NAMESPACE}#{key}" end end |