blob: f21fe99da6e78614791846a0a7a07f531e03e7b2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
package com.tylerstonge.honeypot.reporter
import java.io.FileWriter
import akka.actor.Actor
import akka.event.{Logging, LoggingAdapter}
import com.tylerstonge.honeypot.messages.{MFoundFile, MFoundPassword, MFoundUsername}
class LogReporter extends Actor {
val log: LoggingAdapter = Logging(context.system, this)
val usernameLog = new FileWriter("logs/user.log", true)
val passwordLog = new FileWriter("logs/pass.log", true)
val fileLog = new FileWriter("logs/file.log", true)
context.system.eventStream.subscribe(self, classOf[MFoundUsername])
context.system.eventStream.subscribe(self, classOf[MFoundPassword])
context.system.eventStream.subscribe(self, classOf[MFoundFile])
override def postStop(): Unit = {
super.postStop()
usernameLog.close()
passwordLog.close()
fileLog.close()
}
override def receive: Receive = {
case msg: MFoundUsername =>
log.debug(">> REPORTER >> :: {}", msg.username)
usernameLog.write(msg.username + '\n')
usernameLog.flush()
case msg: MFoundPassword =>
log.debug(">> REPORTER >> :: {}", msg.password)
passwordLog.write(msg.password + '\n')
passwordLog.flush()
case msg: MFoundFile =>
log.debug(">> REPORTER >> :: {}", msg.filename)
fileLog.write(msg.filename + '\n')
fileLog.flush()
}
}
|