Skip to content

Commit 826c177

Browse files
committed
Changes after review 7
- Add filename to request instead of exception. - Move the code adding filename to req into its own private function.
1 parent 6386ed3 commit 826c177

File tree

2 files changed

+15
-9
lines changed

2 files changed

+15
-9
lines changed

ring-core/src/ring/middleware/multipart_params.clj

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -139,10 +139,14 @@
139139

140140
(defn default-invalid-filename-handler
141141
([request]
142-
(-> request ::invalid-filename-exception .getMessage response/bad-request))
142+
(-> request ::invalid-filename response/bad-request))
143143
([request respond raise]
144144
(respond (default-invalid-filename-handler request))))
145145

146+
(defn- add-invalid-filename-to-req
147+
[request invalid-filename-exception]
148+
(assoc request ::invalid-filename (.getName invalid-filename-exception) ))
149+
146150
(defn wrap-multipart-params
147151
"Middleware to parse multipart parameters from a request. Adds the following
148152
keys to the request map:
@@ -177,7 +181,7 @@
177181
:invalid-filename-handler
178182
- A handler that gets called when the file being uploaded has an invalid name.
179183
When this handler receives the request it can expect one additional key,
180-
::invalid-filename-exception, which contains an InvalidFileNameException."
184+
::invalid-filename, which contains the name of the invalid file."
181185
([handler]
182186
(wrap-multipart-params handler {}))
183187
([handler options]
@@ -188,14 +192,16 @@
188192
(multipart-params-request request options)
189193
(catch InvalidFileNameException ex ex))]
190194
(if (instance? InvalidFileNameException req-or-ex)
191-
(invalid-filename-handler
192-
(assoc request ::invalid-filename-exception req-or-ex))
195+
(-> request
196+
(add-invalid-filename-to-req req-or-ex)
197+
invalid-filename-handler)
193198
(handler req-or-ex))))
194199
([request respond raise]
195200
(let [req-or-ex (try
196201
(multipart-params-request request options)
197202
(catch InvalidFileNameException ex ex))]
198203
(if (instance? InvalidFileNameException req-or-ex)
199-
(invalid-filename-handler
200-
(assoc request ::invalid-filename-exception req-or-ex) respond raise)
204+
(-> request
205+
(add-invalid-filename-to-req req-or-ex)
206+
(invalid-filename-handler respond raise))
201207
(handler req-or-ex respond raise))))))))

ring-core/test/ring/middleware/test/multipart_params.clj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -191,10 +191,10 @@
191191
invalid-filename-exception
192192
(try
193193
(org.apache.commons.fileupload.util.Streams/checkFileName invalid-filename)
194-
(catch Exception e e))
194+
(catch Exception e (println (.getName e)) e))
195195
err-response (default-invalid-filename-handler
196-
{::multipart-params/invalid-filename-exception
197-
invalid-filename-exception})]
196+
{::multipart-params/invalid-filename
197+
(.getName invalid-filename-exception)})]
198198
(testing "Synchronous error response"
199199
(let [handler (wrap-multipart-params identity)]
200200
(is (= err-response (handler request)))))

0 commit comments

Comments
 (0)