mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-06 13:17:41 +00:00
Improved logging for user-mapping and login.
This commit is contained in:
@@ -30,6 +30,8 @@ import net.sourceforge.guacamole.GuacamoleException;
|
|||||||
import net.sourceforge.guacamole.net.basic.properties.BasicGuacamoleProperties;
|
import net.sourceforge.guacamole.net.basic.properties.BasicGuacamoleProperties;
|
||||||
import net.sourceforge.guacamole.protocol.GuacamoleConfiguration;
|
import net.sourceforge.guacamole.protocol.GuacamoleConfiguration;
|
||||||
import net.sourceforge.guacamole.properties.GuacamoleProperties;
|
import net.sourceforge.guacamole.properties.GuacamoleProperties;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
import org.xml.sax.Attributes;
|
import org.xml.sax.Attributes;
|
||||||
import org.xml.sax.SAXException;
|
import org.xml.sax.SAXException;
|
||||||
import org.xml.sax.XMLReader;
|
import org.xml.sax.XMLReader;
|
||||||
@@ -38,6 +40,8 @@ import org.xml.sax.helpers.XMLReaderFactory;
|
|||||||
|
|
||||||
public class BasicFileAuthenticationProvider implements AuthenticationProvider {
|
public class BasicFileAuthenticationProvider implements AuthenticationProvider {
|
||||||
|
|
||||||
|
private Logger logger = LoggerFactory.getLogger(BasicFileAuthenticationProvider.class);
|
||||||
|
|
||||||
private long mappingTime;
|
private long mappingTime;
|
||||||
private Map<String, AuthInfo> mapping;
|
private Map<String, AuthInfo> mapping;
|
||||||
|
|
||||||
@@ -55,6 +59,8 @@ public class BasicFileAuthenticationProvider implements AuthenticationProvider {
|
|||||||
if (mapFile == null)
|
if (mapFile == null)
|
||||||
throw new GuacamoleException("Missing \"basic-user-mapping\" parameter required for basic login.");
|
throw new GuacamoleException("Missing \"basic-user-mapping\" parameter required for basic login.");
|
||||||
|
|
||||||
|
logger.info("Reading user mapping file: {}", mapFile);
|
||||||
|
|
||||||
// Parse document
|
// Parse document
|
||||||
try {
|
try {
|
||||||
|
|
||||||
@@ -86,8 +92,10 @@ public class BasicFileAuthenticationProvider implements AuthenticationProvider {
|
|||||||
|
|
||||||
// If modified recently, gain exclusive access and recheck
|
// If modified recently, gain exclusive access and recheck
|
||||||
synchronized (this) {
|
synchronized (this) {
|
||||||
if (userMappingFile.exists() && mappingTime < userMappingFile.lastModified())
|
if (userMappingFile.exists() && mappingTime < userMappingFile.lastModified()) {
|
||||||
|
logger.info("User mapping file {} has been modified.", userMappingFile);
|
||||||
init(); // If still not up to date, re-init
|
init(); // If still not up to date, re-init
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -48,6 +48,7 @@ public class BasicGuacamoleTunnelServlet extends GuacamoleTunnelServlet {
|
|||||||
authProvider = GuacamoleProperties.getProperty(BasicGuacamoleProperties.AUTH_PROVIDER);
|
authProvider = GuacamoleProperties.getProperty(BasicGuacamoleProperties.AUTH_PROVIDER);
|
||||||
}
|
}
|
||||||
catch (GuacamoleException e) {
|
catch (GuacamoleException e) {
|
||||||
|
logger.error("Error getting authentication provider from properties.", e);
|
||||||
throw new ServletException(e);
|
throw new ServletException(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -63,13 +64,21 @@ public class BasicGuacamoleTunnelServlet extends GuacamoleTunnelServlet {
|
|||||||
String password = request.getParameter("password");
|
String password = request.getParameter("password");
|
||||||
|
|
||||||
// Get authorized config
|
// Get authorized config
|
||||||
GuacamoleConfiguration config = authProvider.getAuthorizedConfiguration(username, password);
|
GuacamoleConfiguration config;
|
||||||
|
try {
|
||||||
|
config = authProvider.getAuthorizedConfiguration(username, password);
|
||||||
|
}
|
||||||
|
catch (GuacamoleException e) {
|
||||||
|
logger.error("Error retrieving authorized configuration for user {}.", username);
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
|
||||||
if (config == null) {
|
if (config == null) {
|
||||||
logger.warn("Failed login from {} for user \"{}\".", request.getRemoteAddr(), username);
|
logger.warn("Failed login from {} for user \"{}\".", request.getRemoteAddr(), username);
|
||||||
throw new GuacamoleException("Invalid login");
|
throw new GuacamoleException("Invalid login");
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.debug("Successful login from {} for user \"{}\".", request.getRemoteAddr(), username);
|
logger.info("Successful login from {} for user \"{}\".", request.getRemoteAddr(), username);
|
||||||
|
|
||||||
// Configure and connect socket
|
// Configure and connect socket
|
||||||
String hostname = GuacamoleProperties.getProperty(GuacamoleProperties.GUACD_HOSTNAME);
|
String hostname = GuacamoleProperties.getProperty(GuacamoleProperties.GUACD_HOSTNAME);
|
||||||
|
Reference in New Issue
Block a user