From 815fcbd497fe358cf7faa59d69b21875e928e2bf Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Mon, 19 Mar 2018 19:47:00 +0100 Subject: [PATCH 1/5] app/models/Data/RequestMeta.php: adding source_ip and method. --- app/models/Data/RequestMeta.php | 50 +++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/app/models/Data/RequestMeta.php b/app/models/Data/RequestMeta.php index df164fa..6841560 100644 --- a/app/models/Data/RequestMeta.php +++ b/app/models/Data/RequestMeta.php @@ -18,6 +18,20 @@ class RequestMeta extends Model */ protected $callbackid; + /** + * Source IP Address + * + * @var string + */ + protected $source_ip; + + /** + * HTTP Method + * + * @var string + */ + protected $method; + /** * HTTP Request Uri * @@ -79,6 +93,42 @@ class RequestMeta extends Model return $this; } + /** + * @param string $source_ip + * @return RequestMeta + */ + public function setSourceIp($source_ip) + { + $this->source_ip = (string) $source_ip; + return $this; + } + + /** + * @return mixed + */ + public function getSourceIp() + { + return $this->source_ip; + } + + /** + * @param string $method + * @return RequestMeta + */ + public function setMethod($method) + { + $this->method = (string) $method; + return $this; + } + + /** + * @return string + */ + public function getMethod() + { + return $this->method; + } + /** * @param string $uri * @return RequestMeta From b6507f1171dad204ecca5accb3b15102c140130c Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Mon, 19 Mar 2018 19:48:01 +0100 Subject: [PATCH 2/5] app/controllers/CallbackController.php: in endpointAction() log method and client ip. (also only log GET/POST request for now) --- app/controllers/CallbackController.php | 35 ++++++++++++++++---------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/app/controllers/CallbackController.php b/app/controllers/CallbackController.php index 02692f3..dd63395 100644 --- a/app/controllers/CallbackController.php +++ b/app/controllers/CallbackController.php @@ -122,25 +122,34 @@ class CallbackController extends ControllerBase { $this->view->disable(); - $callback = Model\Data\Callback::get($id); + $allowed_methods = array('GET', 'POST'); + if ($this->request->isMethod($allowed_methods)) { - $request = new Model\Data\Request(); + $callback = Model\Data\Callback::get($id); - $request->setHeaders($this->request->getHeaders()); - $request->setBody($this->request->getRawBody()); + $request = new Model\Data\Request(); - $dt = new DateTime(); + $request->setHeaders($this->request->getHeaders()); + $request->setBody($this->request->getRawBody()); - $callback->setLastRequest($dt->format('Y-m-d H:i:s')); + $dt = new DateTime(); - $meta = new Model\Data\RequestMeta(); - $meta->Callback = $callback; - $meta->RequestObject = $request; - $meta->setUri($this->request->getServer('REQUEST_URI')); + $callback->setLastRequest($dt->format('Y-m-d H:i:s')); - $result = $meta->save(); - if ($result == false) { - var_dump($meta->getMessages()); + $meta = new Model\Data\RequestMeta(); + $meta->Callback = $callback; + $meta->RequestObject = $request; + + $meta->setSourceIp($this->request->getClientAddress()); + $meta->setMethod($this->request->isPost() ? 'POST' : 'GET'); + $meta->setUri($this->request->getServer('REQUEST_URI')); + + $result = $meta->save(); + if ($result == false) { + var_dump($meta->getMessages()); + } } + + } } From 8828c14230e3e4851f33c37ac6fad40a8e87976e Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Mon, 19 Mar 2018 20:24:38 +0100 Subject: [PATCH 3/5] app/views/callback/show.volt: move some stuff around and add 2 rows for list header to make room for source ip and method. --- app/assets/less/components/request-item.less | 34 +++++++++++----- app/views/callback/show.volt | 43 ++++++++++++++------ 2 files changed, 55 insertions(+), 22 deletions(-) diff --git a/app/assets/less/components/request-item.less b/app/assets/less/components/request-item.less index 72b2772..378b5ed 100644 --- a/app/assets/less/components/request-item.less +++ b/app/assets/less/components/request-item.less @@ -35,23 +35,37 @@ } } - &-uri { - display: inline-block; - width: 45%; + &-row { + display: block; + & + & { + margin-top: .4em; + } } - &-size { + &-method, + &-uri, + &-type, + &-timestamp, + &-size, + &-ip { display: inline-block; - width: 10%; + .icon { + margin: 0 .2em; + } + } + + &-method { + font-weight: bold; } &-type, + &-size { + width: 30%; + } + + &-ip, &-timestamp { - display: inline-block; - width: 20%; - .icon { - padding: 0 .4em; - } + float: right; } } diff --git a/app/views/callback/show.volt b/app/views/callback/show.volt index afa613a..24ddb7f 100644 --- a/app/views/callback/show.volt +++ b/app/views/callback/show.volt @@ -14,21 +14,40 @@ data-toggle="collapse" data-parent="#request-log" aria-expanded="true" aria-controls="request{{ index }}"> - - {{ icon('android-locate') }} {{ urlStyle(req.getUri()) }} - +
- - {{ icon('android-time') }} {{ req.getTimestamp() }} - + + {{ req.getMethod() }} + + + + {{ urlStyle(req.getUri()) }} + + + + {{ icon('android-time') }} {{ req.getTimestamp() }} + +
+ +
+ + + + + {{ icon('android-list') }} {{ req.getType() }} + + + + {{ icon('cube') }} {{ req.getSize() }} b + + + + {{ icon('location') }} {{ req.getSourceIp() }} + + +
- - {{ icon('android-list') }} {{ req.getType() }} - - - {{ icon('cube') }} {{ req.getSize() }} b -
Date: Mon, 19 Mar 2018 20:25:45 +0100 Subject: [PATCH 4/5] app/assets/less/components/request-item.less: scale text down abit for all list header fields except method and uri. --- app/assets/less/components/request-item.less | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/assets/less/components/request-item.less b/app/assets/less/components/request-item.less index 378b5ed..bff2e0d 100644 --- a/app/assets/less/components/request-item.less +++ b/app/assets/less/components/request-item.less @@ -54,6 +54,13 @@ } } + &-type, + &-timestamp, + &-size, + &-ip { + font-size: @font-size-small; + } + &-method { font-weight: bold; } From 2c07bd8b87126601aa16751a7ceeaa0843fc5373 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Mon, 19 Mar 2018 20:31:27 +0100 Subject: [PATCH 5/5] app/assets/less/components/request-item.less: make text color a bit brighter for all list header fields except method and uri. --- app/assets/less/components/request-item.less | 1 + app/assets/less/variables.less | 1 + 2 files changed, 2 insertions(+) diff --git a/app/assets/less/components/request-item.less b/app/assets/less/components/request-item.less index bff2e0d..2278374 100644 --- a/app/assets/less/components/request-item.less +++ b/app/assets/less/components/request-item.less @@ -58,6 +58,7 @@ &-timestamp, &-size, &-ip { + color: @request-item-light-color; font-size: @font-size-small; } diff --git a/app/assets/less/variables.less b/app/assets/less/variables.less index 53172df..e55c4bf 100644 --- a/app/assets/less/variables.less +++ b/app/assets/less/variables.less @@ -164,6 +164,7 @@ // ---------------------------------- @request-item-color: @dark-grey; +@request-item-light-color: #666; @request-item-background: transparent; @request-item-border-color: @light-grey; @request-item-active-color: @dark-grey;