diff --git a/include/authentication.hpp b/include/authentication.hpp
index 6199808..1690550 100644
--- a/include/authentication.hpp
+++ b/include/authentication.hpp
@@ -19,9 +19,8 @@
 namespace authentication
 {
 
-inline std::shared_ptr<persistent_data::UserSession>
-    performBasicAuth(const boost::asio::ip::address& clientIp,
-                     std::string_view authHeader)
+inline std::shared_ptr<persistent_data::UserSession> performBasicAuth(
+    const boost::asio::ip::address& clientIp, std::string_view authHeader)
 {
     BMCWEB_LOG_DEBUG("[AuthMiddleware] Basic authentication");
 
@@ -142,8 +141,8 @@
         {
             endIndex = cookieValue.size();
         }
-        std::string_view authKey = cookieValue.substr(startIndex,
-                                                      endIndex - startIndex);
+        std::string_view authKey =
+            cookieValue.substr(startIndex, endIndex - startIndex);
 
         std::shared_ptr<persistent_data::UserSession> sessionOut =
             persistent_data::SessionStore::getInstance().loginSessionByToken(
@@ -183,9 +182,8 @@
     return nullptr;
 }
 
-inline std::shared_ptr<persistent_data::UserSession>
-    performTLSAuth(Response& res,
-                   const std::shared_ptr<persistent_data::UserSession>& session)
+inline std::shared_ptr<persistent_data::UserSession> performTLSAuth(
+    Response& res, const std::shared_ptr<persistent_data::UserSession>& session)
 {
     if (session != nullptr)
     {
