Skip to content

Commit 3a4f466

Browse files
committed
Add loging to ldap auth provider
1 parent e77b182 commit 3a4f466

File tree

4 files changed

+29
-0
lines changed

4 files changed

+29
-0
lines changed

ydb/core/security/ldap_auth_provider/ldap_auth_provider.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
#include <queue>
77
#include "ldap_auth_provider.h"
88
#include "ldap_utils.h"
9+
#include "ldap_auth_provider_log.h"
910

1011
// This temporary solution
1112
// These lines should be declared outside ldap_compat.h
@@ -118,6 +119,7 @@ class TLdapAuthProvider : public NActors::TActorBootstrapped<TLdapAuthProvider>
118119
}
119120

120121
void Handle(TEvLdapAuthProvider::TEvEnrichGroupsRequest::TPtr& ev) {
122+
// LDAP_LOG_D("+++ TEvLdapAuthProvider::TEvEnrichGroupsRequest");
121123
TEvLdapAuthProvider::TEvEnrichGroupsRequest* request = ev->Get();
122124
LDAP* ld = nullptr;
123125
auto initAndBindResult = InitAndBind(&ld, [&request](const TEvLdapAuthProvider::EStatus& status, const TEvLdapAuthProvider::TError& error) {
@@ -174,6 +176,7 @@ class TLdapAuthProvider : public NActors::TActorBootstrapped<TLdapAuthProvider>
174176
if (Settings.GetScheme() != NKikimrLdap::LDAPS_SCHEME && Settings.GetUseTls().GetEnable()) {
175177
result = NKikimrLdap::StartTLS(*ld);
176178
if (!NKikimrLdap::IsSuccess(result)) {
179+
LDAP_LOG_D("Could not start TLS. " + NKikimrLdap::ErrorToString(result));
177180
TEvLdapAuthProvider::TError error {
178181
.Message = "Could not start TLS\n" + NKikimrLdap::ErrorToString(result),
179182
.Retryable = NKikimrLdap::IsRetryableError(result)
@@ -187,6 +190,8 @@ class TLdapAuthProvider : public NActors::TActorBootstrapped<TLdapAuthProvider>
187190

188191
result = NKikimrLdap::Bind(*ld, Settings.GetBindDn(), Settings.GetBindPassword());
189192
if (!NKikimrLdap::IsSuccess(result)) {
193+
LDAP_LOG_D("Could not perform initial LDAP bind for dn " + Settings.GetBindDn() + " on server " + UrisCreator.GetUris() + ". "
194+
+ NKikimrLdap::ErrorToString(result));
190195
TEvLdapAuthProvider::TError error {
191196
.Message = "Could not perform initial LDAP bind for dn " + Settings.GetBindDn() + " on server " + UrisCreator.GetUris() + "\n"
192197
+ NKikimrLdap::ErrorToString(result),
@@ -249,6 +254,8 @@ class TLdapAuthProvider : public NActors::TActorBootstrapped<TLdapAuthProvider>
249254
TAuthenticateUserResponse AuthenticateUser(const TAuthenticateUserRequest& request) {
250255
char* dn = NKikimrLdap::GetDn(*request.Ld, request.Entry);
251256
if (dn == nullptr) {
257+
LDAP_LOG_D("Could not get dn for the first entry matching " + FilterCreator.GetFilter(request.Login) + " on server " + UrisCreator.GetUris() + ". "
258+
+ NKikimrLdap::LdapError(*request.Ld));
252259
return {{TEvLdapAuthProvider::EStatus::UNAUTHORIZED,
253260
{.Message = "Could not get dn for the first entry matching " + FilterCreator.GetFilter(request.Login) + " on server " + UrisCreator.GetUris() + "\n"
254261
+ NKikimrLdap::LdapError(*request.Ld),
@@ -257,6 +264,8 @@ class TLdapAuthProvider : public NActors::TActorBootstrapped<TLdapAuthProvider>
257264
TEvLdapAuthProvider::TError error;
258265
int result = NKikimrLdap::Bind(*request.Ld, dn, request.Password);
259266
if (!NKikimrLdap::IsSuccess(result)) {
267+
LDAP_LOG_D("LDAP login failed for user " + TString(dn) + " on server " + UrisCreator.GetUris() + ". "
268+
+ NKikimrLdap::ErrorToString((result)));
260269
error.Message = "LDAP login failed for user " + TString(dn) + " on server " + UrisCreator.GetUris() + "\n"
261270
+ NKikimrLdap::ErrorToString((result));
262271
error.Retryable = NKikimrLdap::IsRetryableError(result);
@@ -278,6 +287,8 @@ class TLdapAuthProvider : public NActors::TActorBootstrapped<TLdapAuthProvider>
278287
&searchMessage);
279288
TSearchUserResponse response;
280289
if (!NKikimrLdap::IsSuccess(result)) {
290+
LDAP_LOG_D("Could not search for filter " + searchFilter + " on server " + UrisCreator.GetUris() + ". "
291+
+ NKikimrLdap::ErrorToString(result));
281292
response.Status = NKikimrLdap::ErrorToStatus(result);
282293
response.Error = {.Message = "Could not search for filter " + searchFilter + " on server " + UrisCreator.GetUris() + "\n"
283294
+ NKikimrLdap::ErrorToString(result),
@@ -287,10 +298,14 @@ class TLdapAuthProvider : public NActors::TActorBootstrapped<TLdapAuthProvider>
287298
const int countEntries = NKikimrLdap::CountEntries(request.Ld, searchMessage);
288299
if (countEntries != 1) {
289300
if (countEntries == 0) {
301+
LDAP_LOG_D("LDAP user " + request.User + " does not exist. "
302+
"LDAP search for filter " + searchFilter + " on server " + UrisCreator.GetUris() + " return no entries");
290303
response.Error = {.Message = "LDAP user " + request.User + " does not exist. "
291304
"LDAP search for filter " + searchFilter + " on server " + UrisCreator.GetUris() + " return no entries",
292305
.Retryable = false};
293306
} else {
307+
LDAP_LOG_D("LDAP user " + request.User + " is not unique. "
308+
"LDAP search for filter " + searchFilter + " on server " + UrisCreator.GetUris() + " return " + countEntries + " entries");
294309
response.Error = {.Message = "LDAP user " + request.User + " is not unique. "
295310
"LDAP search for filter " + searchFilter + " on server " + UrisCreator.GetUris() + " return " + countEntries + " entries",
296311
.Retryable = false};
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#pragma once
2+
3+
#include <ydb/library/actors/core/log.h>
4+
5+
#if defined LDAP_LOG_D || defined LDAP_LOG_W || defined LDAP_LOG_ERROR || defined LDAP_LOG_TRACE
6+
#error log macro definition clash
7+
#endif
8+
9+
#define LDAP_LOG_D(stream) LOG_DEBUG_S(*TlsActivationContext, NKikimrServices::LDAP_AUTH_PROVIDER, stream)
10+
#define LDAP_LOG_TRACE(stream) LOG_TRACE_S(*TlsActivationContext, NKikimrServices::LDAP_AUTH_PROVIDER, stream)
11+
#define LDAP_LOG_ERROR(stream) LOG_ERROR_S(*TlsActivationContext, NKikimrServices::LDAP_AUTH_PROVIDER, stream)
12+
#define LDAP_LOG_W(stream) LOG_WARN_S(*TlsActivationContext, NKikimrServices::LDAP_AUTH_PROVIDER, stream)

ydb/core/security/ldap_auth_provider/ldap_auth_provider_ut.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ class TLdapKikimrServer {
125125
Server.EnableGRpc(GrpcPort);
126126
Server.GetRuntime()->SetLogPriority(NKikimrServices::TICKET_PARSER, NLog::PRI_TRACE);
127127
Server.GetRuntime()->SetLogPriority(NKikimrServices::GRPC_CLIENT, NLog::PRI_TRACE);
128+
Server.GetRuntime()->SetLogPriority(NKikimrServices::LDAP_AUTH_PROVIDER, NLog::PRI_TRACE);
128129
}
129130

130131
TTestActorRuntime* GetRuntime() const {

ydb/library/services/services.proto

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,7 @@ enum EServiceKikimr {
188188
TOKEN_BUILDER = 450;
189189
TICKET_PARSER = 455;
190190
BLACKBOX_VALIDATOR = 460;
191+
LDAP_AUTH_PROVIDER = 2650;
191192

192193
GRPC_CLIENT = 461;
193194

0 commit comments

Comments
 (0)