Omitting filters fix for lowercase methods requests #564

This commit is contained in:
Serdar Dogruyol 2022-09-14 09:35:24 +03:00
parent 93521b7120
commit 6fcb318d3e
5 changed files with 41 additions and 8 deletions

33
spec/filters_spec.cr Normal file
View file

@ -0,0 +1,33 @@
require "./spec_helper"
describe "Kemal::FilterHandler" do
it "handles with upcased 'POST'" do
before_post do |env|
env.set "sensitive", "1"
end
post "/sensitive_post" do |env|
env.get "sensitive"
end
request = HTTP::Request.new("POST", "/sensitive_post")
client_response = call_request_on_app(request)
client_response.status_code.should eq(200)
client_response.body.should eq("1")
end
it "handles with downcased 'post'" do
before_post do |env|
env.set "sensitive", "1"
end
post "/sensitive_post" do |env|
"sensitive"
end
request = HTTP::Request.new("post", "/sensitive_post")
client_response = call_request_on_app(request)
client_response.status_code.should eq(200)
client_response.body.should eq("")
end
end

View file

@ -85,6 +85,7 @@ end
Spec.after_each do
Kemal.config.clear
Kemal::FilterHandler::INSTANCE.tree = Radix::Tree(Array(Kemal::FilterHandler::FilterBlock)).new
Kemal::RouteHandler::INSTANCE.routes = Radix::Tree(Route).new
Kemal::RouteHandler::INSTANCE.cached_routes = Hash(String, Radix::Result(Route)).new
Kemal::WebSocketHandler::INSTANCE.routes = Radix::Tree(WebSocket).new