diff --git a/include/authorization.hpp b/include/authorization.hpp
index 0f73e96..c0a84b6 100644
--- a/include/authorization.hpp
+++ b/include/authorization.hpp
@@ -34,6 +34,7 @@
     }
 }
 
+#ifdef BMCWEB_ENABLE_BASIC_AUTHENTICATION
 static std::shared_ptr<persistent_data::UserSession>
     performBasicAuth(const boost::asio::ip::address& clientIp,
                      std::string_view auth_header)
@@ -81,7 +82,9 @@
         user, persistent_data::PersistenceType::SINGLE_REQUEST,
         isConfigureSelfOnly, clientIp.to_string());
 }
+#endif
 
+#ifdef BMCWEB_ENABLE_SESSION_AUTHENTICATION
 static std::shared_ptr<persistent_data::UserSession>
     performTokenAuth(std::string_view auth_header)
 {
@@ -92,7 +95,9 @@
         persistent_data::SessionStore::getInstance().loginSessionByToken(token);
     return session;
 }
+#endif
 
+#ifdef BMCWEB_ENABLE_XTOKEN_AUTHENTICATION
 static std::shared_ptr<persistent_data::UserSession>
     performXtokenAuth(const crow::Request& req)
 {
@@ -107,7 +112,9 @@
         persistent_data::SessionStore::getInstance().loginSessionByToken(token);
     return session;
 }
+#endif
 
+#ifdef BMCWEB_ENABLE_COOKIE_AUTHENTICATION
 static std::shared_ptr<persistent_data::UserSession>
     performCookieAuth(const crow::Request& req)
 {
@@ -164,6 +171,7 @@
 #endif
     return session;
 }
+#endif
 
 #ifdef BMCWEB_ENABLE_MUTUAL_TLS_AUTHENTICATION
 static std::shared_ptr<persistent_data::UserSession>
@@ -250,14 +258,18 @@
         req.session = performTLSAuth(req, res, session);
     }
 #endif
+#ifdef BMCWEB_ENABLE_XTOKEN_AUTHENTICATION
     if (req.session == nullptr && authMethodsConfig.xtoken)
     {
         req.session = performXtokenAuth(req);
     }
+#endif
+#ifdef BMCWEB_ENABLE_COOKIE_AUTHENTICATION
     if (req.session == nullptr && authMethodsConfig.cookie)
     {
         req.session = performCookieAuth(req);
     }
+#endif
     if (req.session == nullptr)
     {
         std::string_view authHeader = req.getHeaderValue("Authorization");
@@ -267,12 +279,16 @@
             if (boost::starts_with(authHeader, "Token ") &&
                 authMethodsConfig.sessionToken)
             {
+#ifdef BMCWEB_ENABLE_SESSION_AUTHENTICATION
                 req.session = performTokenAuth(authHeader);
+#endif
             }
             else if (boost::starts_with(authHeader, "Basic ") &&
                      authMethodsConfig.basic)
             {
+#ifdef BMCWEB_ENABLE_BASIC_AUTHENTICATION
                 req.session = performBasicAuth(req.ipAddress, authHeader);
+#endif
             }
         }
     }
