diff --git a/include/persistent_data_middleware.hpp b/include/persistent_data_middleware.hpp
index d43b4f2..706f6f4 100644
--- a/include/persistent_data_middleware.hpp
+++ b/include/persistent_data_middleware.hpp
@@ -77,8 +77,8 @@
               }
 
               BMCWEB_LOG_DEBUG << "Restored session: " << newSession->csrfToken
-                             << " " << newSession->uniqueId << " "
-                             << newSession->sessionToken;
+                               << " " << newSession->uniqueId << " "
+                               << newSession->sessionToken;
               SessionStore::getInstance().authTokens.emplace(
                   newSession->sessionToken, newSession);
             }
@@ -108,10 +108,9 @@
 
   void writeData() {
     std::ofstream persistentFile(filename);
-    nlohmann::json data{
-        {"sessions", SessionStore::getInstance().authTokens},
-        {"system_uuid", systemUuid},
-        {"revision", jsonRevision}};
+    nlohmann::json data{{"sessions", SessionStore::getInstance().authTokens},
+                        {"system_uuid", systemUuid},
+                        {"revision", jsonRevision}};
     persistentFile << data;
   }
 
diff --git a/include/sessions.hpp b/include/sessions.hpp
index f7f937d..f549fde 100644
--- a/include/sessions.hpp
+++ b/include/sessions.hpp
@@ -36,7 +36,8 @@
    *
    * @param[in] j   JSON object from which data should be loaded
    *
-   * @return a shared pointer if data has been loaded properly, nullptr otherwise
+   * @return a shared pointer if data has been loaded properly, nullptr
+   * otherwise
    */
   static std::shared_ptr<UserSession> fromJson(const nlohmann::json& j) {
     std::shared_ptr<UserSession> userSession = std::make_shared<UserSession>();
@@ -45,7 +46,7 @@
           element.value().get_ptr<const std::string*>();
       if (thisValue == nullptr) {
         BMCWEB_LOG_ERROR << "Error reading persistent store.  Property "
-                       << element.key() << " was not of type string";
+                         << element.key() << " was not of type string";
         return nullptr;
       }
       if (element.key() == "unique_id") {
@@ -58,7 +59,7 @@
         userSession->username = *thisValue;
       } else {
         BMCWEB_LOG_ERROR << "Got unexpected property reading persistent file: "
-                       << element.key();
+                         << element.key();
         return nullptr;
       }
     }
diff --git a/include/webserver_common.hpp b/include/webserver_common.hpp
index 30b567c..f0cfe11 100644
--- a/include/webserver_common.hpp
+++ b/include/webserver_common.hpp
@@ -17,7 +17,6 @@
 
 #include "security_headers_middleware.hpp"
 #include "token_authorization_middleware.hpp"
-#include "security_headers_middleware.hpp"
 #include "webserver_common.hpp"
 
 using CrowApp = crow::App<crow::persistent_data::Middleware,
