Merge pull request #138 from 5apps/feature/137-validate_content-type_put
Validate the Content-Type on PUT requests
This commit is contained in:
commit
153176fb15
@ -118,6 +118,9 @@ module RemoteStorage
|
|||||||
end
|
end
|
||||||
|
|
||||||
def put_data(user, directory, key, data, content_type)
|
def put_data(user, directory, key, data, content_type)
|
||||||
|
# Do not try to perform the PUT request when the Content-Type does not
|
||||||
|
# look like a MIME type
|
||||||
|
server.halt 415 unless content_type.match(/^.+\/.+/i)
|
||||||
server.halt 400 if server.env["HTTP_CONTENT_RANGE"]
|
server.halt 400 if server.env["HTTP_CONTENT_RANGE"]
|
||||||
server.halt 409, "Conflict" if has_name_collision?(user, directory, key)
|
server.halt 409, "Conflict" if has_name_collision?(user, directory, key)
|
||||||
|
|
||||||
|
|||||||
@ -232,6 +232,16 @@ shared_examples_for 'a REST adapter' do
|
|||||||
_(last_response.body).must_equal "Precondition Failed"
|
_(last_response.body).must_equal "Precondition Failed"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe "Content-Type" do
|
||||||
|
it "must be in the type/subtype format" do
|
||||||
|
header "Content-Type", "text"
|
||||||
|
|
||||||
|
put "/phil/food/invalid_content_type", "invalid"
|
||||||
|
|
||||||
|
_(last_response.status).must_equal 415
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user