Merge branch 'master' of https://github.com/AuthMe-Team/AuthMeReloaded into command-perms-refactor

Conflicts:
	src/main/java/fr/xephi/authme/output/Log4JFilter.java
This commit is contained in:
ljacqu
2015-12-02 21:56:53 +01:00
11 changed files with 850 additions and 800 deletions
@@ -4,7 +4,7 @@ import java.util.logging.Filter;
import java.util.logging.LogRecord;
/**
* Console filter Class
* Console filter to replace sensitive AuthMe commands with a generic message.
*
* @author Xephi59
*/
@@ -12,20 +12,15 @@ public class ConsoleFilter implements Filter {
@Override
public boolean isLoggable(LogRecord record) {
try {
if (record == null || record.getMessage() == null)
return true;
String logM = record.getMessage().toLowerCase();
if (!logM.contains("issued server command:"))
return true;
if (!logM.contains("/login ") && !logM.contains("/l ") && !logM.contains("/reg ") && !logM.contains("/changepassword ") && !logM.contains("/unregister ") && !logM.contains("/authme register ") && !logM.contains("/authme changepassword ") && !logM.contains("/authme reg ") && !logM.contains("/authme cp ") && !logM.contains("/register "))
return true;
String playerName = record.getMessage().split(" ")[0];
record.setMessage(playerName + " issued an AuthMe command!");
return true;
} catch (NullPointerException npe) {
if (record == null || record.getMessage() == null) {
return true;
}
if (LogFilterHelper.isSensitiveAuthMeCommand(record.getMessage())) {
String playerName = record.getMessage().split(" ")[0];
record.setMessage(playerName + " issued an AuthMe command");
}
return true;
}
}
@@ -1,6 +1,5 @@
package fr.xephi.authme.output;
import fr.xephi.authme.util.StringUtils;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.Marker;
import org.apache.logging.log4j.core.Filter;
@@ -15,13 +14,6 @@ import org.apache.logging.log4j.message.Message;
*/
public class Log4JFilter implements Filter {
/**
* List of commands (lower-case) to skip.
*/
private static final String[] COMMANDS_TO_SKIP = {"/login ", "/l ", "/reg ", "/changepassword ",
"/unregister ", "/authme register ", "/authme changepassword ", "/authme reg ", "/authme cp ",
"/register "};
/**
* Constructor.
*/
@@ -32,9 +24,9 @@ public class Log4JFilter implements Filter {
* Validates a Message instance and returns the {@link Result} value
* depending on whether the message contains sensitive AuthMe data.
*
* @param message the Message object to verify
* @param message The Message object to verify
*
* @return the Result value
* @return The Result value
*/
private static Result validateMessage(Message message) {
if (message == null) {
@@ -47,21 +39,14 @@ public class Log4JFilter implements Filter {
* Validates a message and returns the {@link Result} value depending
* on whether the message contains sensitive AuthMe data.
*
* @param message the message to verify
* @param message The message to verify
*
* @return the Result value
* @return The Result value
*/
private static Result validateMessage(String message) {
if (message == null) {
return Result.NEUTRAL;
}
String lowerMessage = message.toLowerCase();
if (lowerMessage.contains("issued server command:")
&& StringUtils.containsAny(lowerMessage, COMMANDS_TO_SKIP)) {
return Result.DENY;
}
return Result.NEUTRAL;
return LogFilterHelper.isSensitiveAuthMeCommand(message)
? Result.DENY
: Result.NEUTRAL;
}
@Override
@@ -0,0 +1,34 @@
package fr.xephi.authme.output;
import fr.xephi.authme.util.StringUtils;
/**
* Service class for the log filters.
*/
public final class LogFilterHelper {
private static final String ISSUED_COMMAND_TEXT = "issued server command:";
private static final String[] COMMANDS_TO_SKIP = {"/login ", "/l ", "/reg ", "/changepassword ",
"/unregister ", "/authme register ", "/authme changepassword ", "/authme reg ", "/authme cp ",
"/register "};
private LogFilterHelper() {
// Util class
}
/**
* Validate a message and return whether the message contains a sensitive AuthMe command.
*
* @param message The message to verify
*
* @return True if it is a sensitive AuthMe command, false otherwise
*/
public static boolean isSensitiveAuthMeCommand(String message) {
if (message == null) {
return false;
}
String lowerMessage = message.toLowerCase();
return lowerMessage.contains(ISSUED_COMMAND_TEXT) && StringUtils.containsAny(lowerMessage, COMMANDS_TO_SKIP);
}
}