From c0caf224f959533c1ca45b95a6f37af3eda515c1 Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Mon, 17 Sep 2018 13:17:13 +0200
Subject: [PATCH] debug messages in authenticaton module

---
 .../lcsb/mapviewer/api/users/UserController.java  | 15 +++++++++++++++
 .../lcsb/mapviewer/services/impl/LdapService.java |  8 +++++---
 2 files changed, 20 insertions(+), 3 deletions(-)

diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/users/UserController.java b/rest-api/src/main/java/lcsb/mapviewer/api/users/UserController.java
index 79ef412677..785399a5e7 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/users/UserController.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/users/UserController.java
@@ -35,6 +35,7 @@ import lcsb.mapviewer.api.BaseController;
 import lcsb.mapviewer.api.ObjectNotFoundException;
 import lcsb.mapviewer.api.QueryException;
 import lcsb.mapviewer.common.Configuration;
+import lcsb.mapviewer.model.user.User;
 import lcsb.mapviewer.services.SecurityException;
 import lcsb.mapviewer.services.interfaces.IUserService;
 
@@ -73,6 +74,20 @@ public class UserController extends BaseController {
 
       Map<String, Object> result = new TreeMap<>();
 
+      User user = userService.getUserByToken(request.getSession().getId());
+      if (user == null) {
+        logger.fatal("Inconsistent state. User doesn't exist");
+      } else {
+        if (!user.getLogin().equals(Configuration.ANONYMOUS_LOGIN)) {
+          String method;
+          if (user.isConnectedToLdap()) {
+            method = "LDAP";
+          } else {
+            method = "LOCAL";
+          }
+          logger.debug("User " + login + " successfully logged in using " + method + " authentication method");
+        }
+      }
       result.put("info", "Login successful. TOKEN returned as a cookie");
       return result;
     } catch (AuthenticationException e) {
diff --git a/service/src/main/java/lcsb/mapviewer/services/impl/LdapService.java b/service/src/main/java/lcsb/mapviewer/services/impl/LdapService.java
index 8e40c11e36..1f06dc7d90 100644
--- a/service/src/main/java/lcsb/mapviewer/services/impl/LdapService.java
+++ b/service/src/main/java/lcsb/mapviewer/services/impl/LdapService.java
@@ -87,8 +87,10 @@ public class LdapService implements ILdapService {
     if (user != null) {
       try {
         BindResult result = connection.bind(user.getBindDn(), password);
+        logger.debug("LDAP login status for user " + login + ": " + result.toString());
         return result.getResultCode().equals(ResultCode.SUCCESS);
       } catch (Exception e) {
+        logger.debug("LDAP login for user " + login + " failed", e);
         return false;
       }
     }
@@ -190,11 +192,11 @@ public class LdapService implements ILdapService {
   private Filter createObjectClassFilter() throws LDAPException {
     String objectClass = configurationService.getConfigurationValue(ConfigurationElementType.LDAP_OBJECT_CLASS);
 
-    if (objectClass == null || objectClass.trim().isEmpty() || objectClass .equals( "*")) {
+    if (objectClass == null || objectClass.trim().isEmpty() || objectClass.equals("*")) {
       return Filter.create("objectClass=*");
     }
 
-    return  Filter.createEqualityFilter("objectClass", objectClass);
+    return Filter.createEqualityFilter("objectClass", objectClass);
   }
 
   private Filter createAttributeFilter() throws LDAPException {
@@ -208,7 +210,7 @@ public class LdapService implements ILdapService {
   }
 
   private Filter createLoginFilter(String login) {
-    return  Filter.createEqualityFilter("uid", login);
+    return Filter.createEqualityFilter("uid", login);
   }
 
   public IConfigurationService getConfigurationService() {
-- 
GitLab