Improved logging for user-mapping and login.

This commit is contained in:
Michael Jumper
2011-07-15 00:14:47 -07:00
parent 1240b10474
commit 493b43fe27
2 changed files with 20 additions and 3 deletions

View File

@@ -30,6 +30,8 @@ import net.sourceforge.guacamole.GuacamoleException;
import net.sourceforge.guacamole.net.basic.properties.BasicGuacamoleProperties;
import net.sourceforge.guacamole.protocol.GuacamoleConfiguration;
import net.sourceforge.guacamole.properties.GuacamoleProperties;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;
@@ -38,6 +40,8 @@ import org.xml.sax.helpers.XMLReaderFactory;
public class BasicFileAuthenticationProvider implements AuthenticationProvider {
private Logger logger = LoggerFactory.getLogger(BasicFileAuthenticationProvider.class);
private long mappingTime;
private Map<String, AuthInfo> mapping;
@@ -55,6 +59,8 @@ public class BasicFileAuthenticationProvider implements AuthenticationProvider {
if (mapFile == null)
throw new GuacamoleException("Missing \"basic-user-mapping\" parameter required for basic login.");
logger.info("Reading user mapping file: {}", mapFile);
// Parse document
try {
@@ -86,9 +92,11 @@ public class BasicFileAuthenticationProvider implements AuthenticationProvider {
// If modified recently, gain exclusive access and recheck
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
}
}
}

View File

@@ -48,6 +48,7 @@ public class BasicGuacamoleTunnelServlet extends GuacamoleTunnelServlet {
authProvider = GuacamoleProperties.getProperty(BasicGuacamoleProperties.AUTH_PROVIDER);
}
catch (GuacamoleException e) {
logger.error("Error getting authentication provider from properties.", e);
throw new ServletException(e);
}
@@ -63,13 +64,21 @@ public class BasicGuacamoleTunnelServlet extends GuacamoleTunnelServlet {
String password = request.getParameter("password");
// 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) {
logger.warn("Failed login from {} for user \"{}\".", request.getRemoteAddr(), username);
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
String hostname = GuacamoleProperties.getProperty(GuacamoleProperties.GUACD_HOSTNAME);