@@ -68,9 +68,15 @@ if Code.ensure_loaded?(Plug) do
6868
6969 use Sentry.Plug, header_scrubber: {MyModule, :scrub_headers}
7070
71- To configure scrubbing body and header data, we can set both configuration keys:
71+ ### Cookie Scrubber
7272
73- use Sentry.Plug, header_scrubber: &scrub_headers/1, body_scrubber: &scrub_params/1
73+ By default Sentry will scrub all cookies before sending events.
74+ It can be configured similarly to the headers scrubber, but is configured with the `:cookie_scrubber` key.
75+
76+ To configure scrubbing, we can set all configuration keys:
77+
78+ use Sentry.Plug, header_scrubber: &scrub_headers/1,
79+ body_scrubber: &scrub_params/1, cookie_scrubber: &scrub_cookies/1
7480
7581 ### Including Request Identifiers
7682
@@ -89,6 +95,7 @@ if Code.ensure_loaded?(Plug) do
8995 body_scrubber = Keyword . get ( env , :body_scrubber , { __MODULE__ , :default_body_scrubber } )
9096
9197 header_scrubber = Keyword . get ( env , :header_scrubber , { __MODULE__ , :default_header_scrubber } )
98+ cookie_scrubber = Keyword . get ( env , :cookie_scrubber , { __MODULE__ , :default_cookie_scrubber } )
9299
93100 request_id_header = Keyword . get ( env , :request_id_header )
94101
@@ -109,6 +116,7 @@ if Code.ensure_loaded?(Plug) do
109116 opts = [
110117 body_scrubber: unquote ( body_scrubber ) ,
111118 header_scrubber: unquote ( header_scrubber ) ,
119+ cookie_scrubber: unquote ( cookie_scrubber ) ,
112120 request_id_header: unquote ( request_id_header )
113121 ]
114122
@@ -130,6 +138,7 @@ if Code.ensure_loaded?(Plug) do
130138 def build_request_interface_data ( % Plug.Conn { } = conn , opts ) do
131139 body_scrubber = Keyword . get ( opts , :body_scrubber )
132140 header_scrubber = Keyword . get ( opts , :header_scrubber )
141+ cookie_scrubber = Keyword . get ( opts , :cookie_scrubber )
133142 request_id = Keyword . get ( opts , :request_id_header ) || @ default_plug_request_id_header
134143
135144 conn =
@@ -141,7 +150,7 @@ if Code.ensure_loaded?(Plug) do
141150 method: conn . method ,
142151 data: handle_data ( conn , body_scrubber ) ,
143152 query_string: conn . query_string ,
144- cookies: conn . req_cookies ,
153+ cookies: handle_data ( conn , cookie_scrubber ) ,
145154 headers: handle_data ( conn , header_scrubber ) ,
146155 env: % {
147156 "REMOTE_ADDR" => remote_address ( conn . remote_ip ) ,
@@ -171,6 +180,11 @@ if Code.ensure_loaded?(Plug) do
171180 fun . ( conn )
172181 end
173182
183+ @ spec default_cookie_scrubber ( Plug.Conn . t ( ) ) :: map ( )
184+ def default_cookie_scrubber ( _conn ) do
185+ % { }
186+ end
187+
174188 @ spec default_header_scrubber ( Plug.Conn . t ( ) ) :: map ( )
175189 def default_header_scrubber ( conn ) do
176190 Enum . into ( conn . req_headers , % { } )
0 commit comments