summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--http/http_connection.hpp4
-rw-r--r--http/http_request.hpp2
-rw-r--r--redfish-core/lib/redfish_sessions.hpp9
-rw-r--r--static/redfish/v1/JsonSchemas/OemSession/index.json6
-rw-r--r--static/redfish/v1/schema/OemSession_v1.xml4
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>