Skip to content

Commit

Permalink
LogBack systemout watcher.
Browse files Browse the repository at this point in the history
  • Loading branch information
irinil committed Aug 14, 2020
1 parent e0a3c83 commit a25e5ab
Show file tree
Hide file tree
Showing 6 changed files with 88 additions and 37 deletions.
13 changes: 13 additions & 0 deletions src/main/assets/logback.xml
Expand Up @@ -12,8 +12,21 @@
</encoder>
</appender>

<appender name="CONSOLE-stdout" class="ch.qos.logback.core.ConsoleAppender">
<target>System.out</target> <!-- the default -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<encoder>
<pattern>%d %-5level [%thread] %logger{0}: %msg%n</pattern>
</encoder>
</appender>

<root level="DEBUG">
<appender-ref ref="CONSOLE-stdout" />
<appender-ref ref="logcat" />
</root>



</configuration>
Expand Up @@ -17,7 +17,7 @@
* http://logback.qos.ch/manual/layouts.html#ClassicPatternLayout
*/
public class LogBackWatcher {
private CyclicBufferAppender listAppender;
private CyclicBufferAppender<ILoggingEvent> listAppender;
private static ArrayList<String> packets= new ArrayList<>();

/**
Expand All @@ -29,7 +29,7 @@ public class LogBackWatcher {
* More log message ids in https://qpid.apache.org/releases/qpid-broker-j-8.0.0/book/Java-Broker-Appendix-Operation-Logging.html
*/
public void register() {
listAppender = new CyclicBufferAppender();
listAppender = new CyclicBufferAppender<>();
listAppender.setName("watcher");
listAppender.setContext(getRootLogger().getLoggerContext());
listAppender.start();
Expand Down
@@ -0,0 +1,40 @@
package de.tudarmstadt.informatik.hostage.protocols.AMQP;

import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.filter.Filter;
import ch.qos.logback.core.spi.FilterReply;

public class LogBackFilter extends Filter<ILoggingEvent> {
final Pattern secondPattern = Pattern.compile("\\Q[\\ESMB\\Q]\\E Connection from*");
private static ArrayList<String> packets= new ArrayList<>();

/**
* If the decision is <code>{@link FilterReply#DENY}</code>, then the event will be
* dropped. If the decision is <code>{@link FilterReply#NEUTRAL}</code>, then the next
* filter, if any, will be invoked. If the decision is
* <code>{@link FilterReply#ACCEPT}</code> then the event will be logged without
* consulting with other filters in the chain.
*
* @param event The event to decide upon.
* @return filter result (ACCEPT, DENY, NEUTRAL)
*/
@Override
public FilterReply decide(ILoggingEvent event) {
System.out.println("Received!!!!!!!!..........."+event.getMessage());

Matcher matcher = secondPattern.matcher(event.getMessage());
if (matcher.find()) {
packets.add(event.getMessage());
return FilterReply.ACCEPT;
}
return FilterReply.DENY; }

public ArrayList<String> getList(){
return packets;
}

}
Expand Up @@ -13,20 +13,20 @@

public class LogbackSpy
{
private CyclicBufferAppender listAppender;
private CyclicBufferAppender<ILoggingEvent> listAppender;
private static ArrayList<String> packets= new ArrayList<>();

public void register() {
listAppender = new CyclicBufferAppender();
listAppender = new CyclicBufferAppender<>();
listAppender.setName("spy");
listAppender.setContext(getRootLogger().getLoggerContext());
listAppender.start();
getRootLogger().addAppender(listAppender);

final Pattern pattern = Pattern.compile("CON-1001*");
final Pattern secondPattern = Pattern.compile("\\Q[\\ESMB\\Q]\\E Connection from*");
listAppender.addFilter(new Filter<ILoggingEvent>()
{

@Override
public FilterReply decide(final ILoggingEvent event)
{
Expand All @@ -38,6 +38,24 @@ public FilterReply decide(final ILoggingEvent event)
return FilterReply.DENY;
}
});

listAppender.addFilter(new Filter<ILoggingEvent>()
{
@Override
public FilterReply decide(final ILoggingEvent event)
{
System.out.println("Received!!!!!!!!..........."+event.getMessage());

Matcher matcher = secondPattern.matcher(event.getMessage());
if (matcher.find()) {
packets.add(event.getMessage());
return FilterReply.ACCEPT;
}
return FilterReply.DENY;
}
});


}

public void unregister() {
Expand Down
Expand Up @@ -5,6 +5,7 @@
import com.hierynomus.smbj.connection.Connection;
import com.hierynomus.smbj.session.Session;
import com.hierynomus.smbj.share.DiskShare;
import com.hivemq.client.mqtt.mqtt3.Mqtt3AsyncClient;


import org.alfresco.jlan.netbios.server.NetBIOSNameServer;
Expand All @@ -21,9 +22,13 @@
import java.io.IOException;
import java.util.ArrayList;

import de.tudarmstadt.informatik.hostage.protocols.AMQP.LogBackFilter;
import de.tudarmstadt.informatik.hostage.protocols.AMQP.LogbackSpy;

public class SMBTest {

final static ArrayList<String> packets = new ArrayList<>();
LogBackFilter spy = new LogBackFilter();

@Before
public void testSecondSMB() throws IOException, InvalidConfigurationException, DeviceContextException {
Expand Down Expand Up @@ -94,7 +99,7 @@ public void sessionLoggedOn(SrvSession sess) {
}
});
cfg.addServer(smbServer);

//spy.register();
// start servers
for (int i = 0; i < cfg.numberOfServers(); i++) {
NetworkServer server = cfg.getServer(i);
Expand All @@ -110,11 +115,13 @@ public void testClient() throws IOException {
try (Connection connection = client.connect("0.0.0.0",8812)) {
AuthenticationContext ac = new AuthenticationContext("GUEST", "1234".toCharArray(), "MYDOMAIN");
Session session = connection.authenticate(ac);

// Connect to Share
try (DiskShare share = (DiskShare) session.connectShare("JLANSHARE")) {
System.out.println(share.fileExists("Windows"));
}
// try (DiskShare share = (DiskShare) session.connectShare("JLANSHARE")) {
// System.out.println(share.fileExists("Windows"));
// }
}catch (Exception e){
System.out.println("Meow,meow "+ spy.getList().get(0));

}
}

Expand Down
27 changes: 0 additions & 27 deletions src/test/resources/logback.xml

This file was deleted.

0 comments on commit a25e5ab

Please sign in to comment.