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 79ef412677885c2c45a43aad4e51d4dd67db3016..785399a5e791f3939856763471a526508d04764f 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 8e40c11e36f30899f3a7fcadc16fd2f6742d3d15..1f06dc7d90eb4a05f8418a7b70ace190481b0ec2 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() {