SubscriberLogger.java
/*******************************************************************************
* Copyhacked (H) 2012-2025.
* This program and the accompanying materials
* are made available under no term at all, use it like
* you want, but share and discuss it
* every time possible with every body.
*
* Contributors:
* ron190 at ymail dot com - initial implementation
******************************************************************************/
package com.jsql.view.subscriber;
import com.jsql.model.InjectionModel;
import com.jsql.model.injection.strategy.StrategyError;
import com.jsql.util.AnsiColorUtil;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
/**
* View in the MVC pattern for integration test, process actions sent by the model.<br>
*/
public class SubscriberLogger extends AbstractSubscriber {
private static final Logger LOGGER = LogManager.getRootLogger();
private final InjectionModel model;
public SubscriberLogger(InjectionModel model) {
this.model = model;
}
@Override
protected void execute(Seal request) {
switch (request) {
case Seal.AddDatabases r -> LOGGER.info(() -> AnsiColorUtil.addGreenColor(r.getClass().getSimpleName()));
case Seal.AddTables r -> LOGGER.info(() -> AnsiColorUtil.addGreenColor(r.getClass().getSimpleName()));
case Seal.AddColumns r -> LOGGER.info(() -> AnsiColorUtil.addGreenColor(r.getClass().getSimpleName()));
case Seal.AddTabExploitWeb r -> LOGGER.info(() -> AnsiColorUtil.addGreenColor(r.getClass().getSimpleName()));
case Seal.GetTerminalResult r -> LOGGER.info(() -> AnsiColorUtil.addGreenColor(r.getClass().getSimpleName()));
case Seal.MarkStrategyInvulnerable(var indexError, var strategy) -> {
if (strategy instanceof StrategyError) {
LOGGER.debug(() -> AnsiColorUtil.addRedColor(
this.model.getMediatorEngine().getEngine().instance().getModelYaml().getStrategy().getError().getMethod().get(indexError).getName()
));
} else {
LOGGER.debug(() -> AnsiColorUtil.addRedColor(strategy.getClass().getSimpleName()));
}
}
case Seal.MarkStrategyVulnerable(var indexError, var strategy) -> {
if (strategy instanceof StrategyError) {
LOGGER.info(() -> AnsiColorUtil.addGreenColor(
this.model.getMediatorEngine().getEngine().instance().getModelYaml().getStrategy().getError().getMethod().get(indexError).getName()
));
} else {
LOGGER.info(() -> AnsiColorUtil.addGreenColor(strategy.getClass().getSimpleName()));
}
}
case Seal.MarkFileSystemInvulnerable r -> LOGGER.debug(() -> AnsiColorUtil.addRedColor(r.getClass().getSimpleName()));
case Seal.MarkFileSystemVulnerable r -> LOGGER.info(() -> AnsiColorUtil.addGreenColor(r.getClass().getSimpleName()));
case Seal.MessageBinary(var message) -> LOGGER.info(message::trim);
default -> {
// empty
}
}
}
}