mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-24 08:32:02 +00:00
Explicitly passing a user object to create a LogIn event
This commit is contained in:
parent
31e07fe078
commit
dc88d8d571
@ -486,7 +486,8 @@ ContextMutablePtr Session::makeQueryContextImpl(const ClientInfo * client_info_t
|
|||||||
session_log->addLoginSuccess(
|
session_log->addLoginSuccess(
|
||||||
auth_id,
|
auth_id,
|
||||||
named_session ? std::optional<std::string>(named_session->key.second) : std::nullopt,
|
named_session ? std::optional<std::string>(named_session->key.second) : std::nullopt,
|
||||||
*query_context);
|
*query_context,
|
||||||
|
*user);
|
||||||
|
|
||||||
notified_session_log_about_login = true;
|
notified_session_log_about_login = true;
|
||||||
}
|
}
|
||||||
|
@ -203,7 +203,7 @@ void SessionLogElement::appendToBlock(MutableColumns & columns) const
|
|||||||
columns[i++]->insertData(auth_failure_reason.data(), auth_failure_reason.length());
|
columns[i++]->insertData(auth_failure_reason.data(), auth_failure_reason.length());
|
||||||
}
|
}
|
||||||
|
|
||||||
void SessionLog::addLoginSuccess(const UUID & auth_id, std::optional<String> session_id, const Context & login_context)
|
void SessionLog::addLoginSuccess(const UUID & auth_id, std::optional<String> session_id, const Context & login_context, const User & login_user)
|
||||||
{
|
{
|
||||||
const auto access = login_context.getAccess();
|
const auto access = login_context.getAccess();
|
||||||
const auto & settings = login_context.getSettingsRef();
|
const auto & settings = login_context.getSettingsRef();
|
||||||
@ -212,12 +212,9 @@ void SessionLog::addLoginSuccess(const UUID & auth_id, std::optional<String> ses
|
|||||||
DB::SessionLogElement log_entry(auth_id, SESSION_LOGIN_SUCCESS);
|
DB::SessionLogElement log_entry(auth_id, SESSION_LOGIN_SUCCESS);
|
||||||
log_entry.client_info = client_info;
|
log_entry.client_info = client_info;
|
||||||
|
|
||||||
if (const auto user = login_context.getUser())
|
log_entry.user = login_user.getName();
|
||||||
{
|
log_entry.user_identified_with = login_user.auth_data.getType();
|
||||||
log_entry.user = user->getName();
|
log_entry.external_auth_server = login_user.auth_data.getLDAPServerName();
|
||||||
log_entry.user_identified_with = user->auth_data.getType();
|
|
||||||
log_entry.external_auth_server = user->auth_data.getLDAPServerName();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (session_id)
|
if (session_id)
|
||||||
log_entry.session_id = *session_id;
|
log_entry.session_id = *session_id;
|
||||||
|
@ -18,6 +18,7 @@ enum SessionLogElementType : int8_t
|
|||||||
};
|
};
|
||||||
|
|
||||||
class ContextAccess;
|
class ContextAccess;
|
||||||
|
struct User;
|
||||||
|
|
||||||
/** A struct which will be inserted as row into session_log table.
|
/** A struct which will be inserted as row into session_log table.
|
||||||
*
|
*
|
||||||
@ -69,7 +70,7 @@ class SessionLog : public SystemLog<SessionLogElement>
|
|||||||
using SystemLog<SessionLogElement>::SystemLog;
|
using SystemLog<SessionLogElement>::SystemLog;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void addLoginSuccess(const UUID & auth_id, std::optional<String> session_id, const Context & login_context);
|
void addLoginSuccess(const UUID & auth_id, std::optional<String> session_id, const Context & login_context, const User & login_user);
|
||||||
void addLoginFailure(const UUID & auth_id, const ClientInfo & info, const String & user, const Exception & reason);
|
void addLoginFailure(const UUID & auth_id, const ClientInfo & info, const String & user, const Exception & reason);
|
||||||
void addLogOut(const UUID & auth_id, const String & user, const ClientInfo & client_info);
|
void addLogOut(const UUID & auth_id, const String & user, const ClientInfo & client_info);
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user