Skip to content

Commit

Permalink
add wiretap
Browse files Browse the repository at this point in the history
  • Loading branch information
ornicar committed Oct 21, 2012
1 parent 04c2af6 commit 756245e
Show file tree
Hide file tree
Showing 6 changed files with 22 additions and 2 deletions.
1 change: 1 addition & 0 deletions app/core/Global.scala
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ object Global extends GlobalSettings {
}
else {
env.monitor.rpsProvider.countRequest()
env.security.wiretap(req)
env.security.firewall.requestHandler(req) orElse
env.i18n.requestHandler(req) orElse
super.onRouteRequest(req)
Expand Down
2 changes: 2 additions & 0 deletions app/core/Settings.scala
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package core

import com.typesafe.config.Config
import scalaz.{ Success, Failure }
import scala.collection.JavaConversions._

final class Settings(config: Config, val IsDev: Boolean) {

Expand Down Expand Up @@ -128,6 +129,7 @@ final class Settings(config: Config, val IsDev: Boolean) {
val CoreCronEnabled = getBoolean("core.cron.enabled")

val SecurityCollectionSecurity = getString("security.collection.security")
val SecurityWiretapIps = getStringList("security.wiretap.ips").toList

val ActorReporting = "reporting"
val ActorSiteHub = "site_hub"
Expand Down
2 changes: 1 addition & 1 deletion app/round/Socket.scala
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ final class Socket(
) map {
case Connected(enumerator, member) {
if (owner && !member.owner) {
println("Websocket hijacking detected %s %s".format(pov.gameId, ctx.toString))
println("Websocket hijacking detected %s %s".format(pov.fullId, ctx.toString))
}
(Iteratee.foreach[JsValue](
controller(hub, uid, member, PovRef(pov.gameId, member.color))
Expand Down
2 changes: 1 addition & 1 deletion app/security/Firewall.scala
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ final class Firewall(
}

private def formatReq(req: RequestHeader) =
"%s %s %s".format(req.uri, req.remoteAddress, req.headers.get("User-Agent") | "?")
"%s %s %s".format(req.remoteAddress, req.uri, req.headers.get("User-Agent") | "?")

private def blocksIp(ip: String) = ips contains ip

Expand Down
2 changes: 2 additions & 0 deletions app/security/SecurityEnv.scala
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ final class SecurityEnv(

lazy val flood = new security.Flood

lazy val wiretap = new security.Wiretap(SecurityWiretapIps.toSet)

lazy val forms = new DataForm(
userRepo = userRepo,
captcher = captcha)
Expand Down
15 changes: 15 additions & 0 deletions app/security/Wiretap.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package lila
package security

import play.api.mvc.RequestHeader

final class Wiretap(ips: Set[String]) {

def apply(req: RequestHeader) {
if (ips(req.remoteAddress)) println("[wiretap] %s %s %s".format(
req.remoteAddress,
"http:https://" + req.host + req.uri,
req.headers.get("User-Agent") | "?"
))
}
}

0 comments on commit 756245e

Please sign in to comment.