diff --git a/http/complete_response_fields.hpp b/http/complete_response_fields.hpp
index bec33fc..a5468a4 100644
--- a/http/complete_response_fields.hpp
+++ b/http/complete_response_fields.hpp
@@ -18,13 +18,10 @@
 namespace crow
 {
 
-inline void completeResponseFields(const Request& req, Response& res)
+inline void completeResponseFields(std::string_view accepts, Response& res)
 {
-    BMCWEB_LOG_INFO("Response:  {} {}", req.url().encoded_path(),
-                    res.resultInt());
-    addSecurityHeaders(req, res);
-
-    authentication::cleanupTempSession(req);
+    BMCWEB_LOG_INFO("Response: {}", res.resultInt());
+    addSecurityHeaders(res);
 
     res.setHashAndHandleNotModified();
     if (res.jsonValue.is_structured())
@@ -32,8 +29,7 @@
         using http_helpers::ContentType;
         std::array<ContentType, 3> allowed{ContentType::CBOR, ContentType::JSON,
                                            ContentType::HTML};
-        ContentType preferred =
-            getPreferredContentType(req.getHeaderValue("Accept"), allowed);
+        ContentType preferred = getPreferredContentType(accepts, allowed);
 
         if (preferred == ContentType::HTML)
         {
