diff options
author | Sunitha Harish <sunharis@in.ibm.com> | 2020-09-28 10:10:59 +0300 |
---|---|---|
committer | Sunitha Harish <sunithaharish04@gmail.com> | 2020-10-08 07:31:15 +0300 |
commit | e436008377fbcf287be02c9e9e1b59c6627d7673 (patch) | |
tree | 3f6fba63a9f8fa39c2da7a1b2534a12b77ee78fb /redfish-core/lib/redfish_sessions.hpp | |
parent | 6cdcb837fe26cbbc1f91bc5634f7a068b025a140 (diff) | |
download | bmcweb-e436008377fbcf287be02c9e9e1b59c6627d7673.tar.xz |
Redfish Session : Support ClientOriginIPAddress
This commit implements the ClientOriginIPAddress property on
the session resource
Tested by:
1. Create session
POST https://${bmc}/redfish/v1/SessionService/Sessions -d '{"UserName":<>, "Password":<>}'
2. Check the session gets updated with the ClientOriginIPAddress
GET https://${bmc}/redfish/v1/SessionService/Sessions/<id>
3. Redfish validator passed
Signed-off-by: Sunitha Harish <sunharis@in.ibm.com>
Change-Id: I4c5c6f651bb6faec0cb1b1b78d9da593ecb85ff0
Diffstat (limited to 'redfish-core/lib/redfish_sessions.hpp')
-rw-r--r-- | redfish-core/lib/redfish_sessions.hpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/redfish-core/lib/redfish_sessions.hpp b/redfish-core/lib/redfish_sessions.hpp index e3259895d2..1797ab9803 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_0_2.Session"; + res.jsonValue["@odata.type"] = "#Session.v1_3_0.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,7 +174,6 @@ 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)) { @@ -226,12 +225,14 @@ 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, clientIp); + isConfigureSelfOnly, clientId, req.ipAddress.to_string()); res.addHeader("X-Auth-Token", session->sessionToken); res.addHeader("Location", "/redfish/v1/SessionService/Sessions/" + session->uniqueId); |