diff options
author | Ed Tanous <ed@tanous.net> | 2020-10-28 18:23:15 +0300 |
---|---|---|
committer | Ed Tanous <ed@tanous.net> | 2020-10-29 02:10:06 +0300 |
commit | 10f0d240a56e33acf78dae93fa6f71387f2e2af2 (patch) | |
tree | 5a46bcb9489b7249f9d47bc12c10310175bcedf6 | |
parent | dc3fa6671cd588d5a09416da09030f82aff2e50b (diff) | |
download | bmcweb-10f0d240a56e33acf78dae93fa6f71387f2e2af2.tar.xz |
Revert "Redfish Session : Support ClientOriginIPAddress"
This reverts commit e436008377fbcf287be02c9e9e1b59c6627d7673.
Reason for revert:
This breaks several things.
1. Not all login endpoints are handled, which lead to returning blank ip addresses
2. IP addresses are not persisted.
3. This crashes occasionally on remote_endpoint, and ignores ec.
Change-Id: I58c875721cf48bf02db833c9c57a9eead5e249d5
-rw-r--r-- | http/http_connection.hpp | 4 | ||||
-rw-r--r-- | http/http_request.hpp | 2 | ||||
-rw-r--r-- | redfish-core/lib/redfish_sessions.hpp | 9 | ||||
-rw-r--r-- | static/redfish/v1/JsonSchemas/OemSession/index.json | 6 | ||||
-rw-r--r-- | static/redfish/v1/schema/OemSession_v1.xml | 4 |
5 files changed, 14 insertions, 11 deletions
diff --git a/http/http_connection.hpp b/http/http_connection.hpp index 302d19bd97..ec8e9d5233 100644 --- a/http/http_connection.hpp +++ b/http/http_connection.hpp @@ -316,10 +316,6 @@ class Connection : } } - // Copy the client's IP address - req->ipAddress = - boost::beast::get_lowest_layer(adaptor).remote_endpoint().address(); - BMCWEB_LOG_INFO << "Request: " << " " << this << " HTTP/" << req->version() / 10 << "." << req->version() % 10 << ' ' << req->methodString() diff --git a/http/http_request.hpp b/http/http_request.hpp index d9d6cf723c..e5c0c9e982 100644 --- a/http/http_request.hpp +++ b/http/http_request.hpp @@ -4,7 +4,6 @@ #include "sessions.hpp" #include <boost/asio/io_context.hpp> -#include <boost/asio/ip/address.hpp> #include <boost/beast/http/message.hpp> #include <boost/beast/http/string_body.hpp> #include <boost/beast/websocket.hpp> @@ -25,7 +24,6 @@ struct Request const std::string& body; boost::asio::io_context* ioService{}; - boost::asio::ip::address ipAddress; std::shared_ptr<persistent_data::UserSession> session; diff --git a/redfish-core/lib/redfish_sessions.hpp b/redfish-core/lib/redfish_sessions.hpp index 1797ab9803..e3259895d2 100644 --- a/redfish-core/lib/redfish_sessions.hpp +++ b/redfish-core/lib/redfish_sessions.hpp @@ -60,15 +60,15 @@ class Sessions : public Node res.jsonValue["UserName"] = session->username; res.jsonValue["@odata.id"] = "/redfish/v1/SessionService/Sessions/" + session->uniqueId; - res.jsonValue["@odata.type"] = "#Session.v1_3_0.Session"; + res.jsonValue["@odata.type"] = "#Session.v1_0_2.Session"; res.jsonValue["Name"] = "User Session"; res.jsonValue["Description"] = "Manager User Session"; - res.jsonValue["ClientOriginIPAddress"] = session->clientIp; res.jsonValue["Oem"]["OpenBMC"]["@odata.type"] = "#OemSession.v1_0_0.Session"; #ifdef BMCWEB_ENABLE_IBM_MANAGEMENT_CONSOLE res.jsonValue["Oem"]["OpenBMC"]["ClientID"] = session->clientId; #endif + res.jsonValue["Oem"]["OpenBMC"]["ClientOriginIP"] = session->clientIp; res.end(); } @@ -174,6 +174,7 @@ class SessionCollection : public Node std::string password; std::optional<nlohmann::json> oemObject; std::string clientId; + std::string clientIp; if (!json_util::readJson(req, res, "UserName", username, "Password", password, "Oem", oemObject)) { @@ -225,14 +226,12 @@ class SessionCollection : public Node } } #endif - BMCWEB_LOG_DEBUG << "Session created from IPAddress: " - << req.ipAddress.to_string(); // User is authenticated - create session std::shared_ptr<persistent_data::UserSession> session = persistent_data::SessionStore::getInstance().generateUserSession( username, persistent_data::PersistenceType::TIMEOUT, - isConfigureSelfOnly, clientId, req.ipAddress.to_string()); + isConfigureSelfOnly, clientId, clientIp); res.addHeader("X-Auth-Token", session->sessionToken); res.addHeader("Location", "/redfish/v1/SessionService/Sessions/" + session->uniqueId); diff --git a/static/redfish/v1/JsonSchemas/OemSession/index.json b/static/redfish/v1/JsonSchemas/OemSession/index.json index 8eefd952f3..c80e34003c 100644 --- a/static/redfish/v1/JsonSchemas/OemSession/index.json +++ b/static/redfish/v1/JsonSchemas/OemSession/index.json @@ -28,6 +28,12 @@ "readonly": true, "type" : "string" }, + "ClientOriginIP" : { + "description": "The IP address where the Session was created from.", + "longDescription": "This property shall contain the IP address where the client created the session from.", + "readonly": true, + "type": "string" + }, "type": "object" } } diff --git a/static/redfish/v1/schema/OemSession_v1.xml b/static/redfish/v1/schema/OemSession_v1.xml index f02f8617eb..cc74848b81 100644 --- a/static/redfish/v1/schema/OemSession_v1.xml +++ b/static/redfish/v1/schema/OemSession_v1.xml @@ -32,6 +32,10 @@ <Annotation Term="OData.Description" String="The Id of the client creating this session."/> <Annotation Term="OData.LongDescription" String="This will be the unique identifier set by the client."/> </Property> + <Property Name="ClientOriginIP" Type="Edm.String"> + <Annotation Term="OData.Description" String="The IP address where the Session was created from."/> + <Annotation Term="OData.LongDescription" String="This property shall contain the IP address where the client created the session from."/> + </Property> </EntityType> </Schema> |