fix suppress internal details in error messages

Store_error and Internal errors now show generic messages instead of leaking internal resolver/store details to the user. Bad_request and Not_found still pass through their specific messages.

Commit
247539a52f40686b7b3a65a8414559b2fb2486e2
Author
Marius Peter <dev@marius-peter.com>
Author date
Committer
Marius Peter <dev@marius-peter.com>
Committer date
lib/handlers.ml
index a6ae47d4..ddc8f47c 100644..100644
@@ -1,14 +1,19 @@
1 1 (* -*- mode: tuareg; -*- *)
2 2
3 3 let error_response error =
4 Removed: let status, title =
4 Added: let status, title, message =
5 5 match error with
6 Removed: | Resolvers.Bad_request _ -> (`Bad_Request, "Bad request")
7 Removed: | Resolvers.Not_found _ -> (`Not_Found, "Not found")
8 Removed: | Resolvers.Store_error _ | Resolvers.Internal _ ->
9 Removed: (`Internal_Server_Error, "Internal server error")
6 Added: | Resolvers.Bad_request raw -> (`Bad_Request, "Bad request", raw)
7 Added: | Resolvers.Not_found raw -> (`Not_Found, "Not found", raw)
8 Added: | Resolvers.Store_error _ ->
9 Added: ( `Internal_Server_Error,
10 Added: "Internal server error",
11 Added: "An unexpected error occurred while reading repository data." )
12 Added: | Resolvers.Internal _ ->
13 Added: ( `Internal_Server_Error,
14 Added: "Internal server error",
15 Added: "An unexpected error occurred." )
10 16 in
11 Removed: let message = Format.asprintf "%a" Resolvers.pp_error error in
12 17 Views.error_page ~status ~title message
13 18
14 19 let root_title config =