Browse Source

Agregado del logger

gabriel 7 years ago
parent
commit
ac4a13da24
2 changed files with 27 additions and 2 deletions
  1. 3 1
      Resources/config/services.yml
  2. 24 1
      Security/Firewall/OAuthProxyListener.php

+ 3 - 1
Resources/config/services.yml

@@ -12,4 +12,6 @@ services:
     auth.oauth_proxy.listener:
         class: AuthBundle\Security\Firewall\OAuthProxyListener
         arguments: [ '@security.token_storage', '@security.authentication.manager', '@auth.access_token.service' ]
-        public: false
+        public: false
+        calls:
+            - [ setLogger, ['@logger'] ]

+ 24 - 1
Security/Firewall/OAuthProxyListener.php

@@ -5,6 +5,7 @@ namespace AuthBundle\Security\Firewall;
 use AuthBundle\Services\AccessTokenService;
 use Base\OAuthClientBundle\Security\Core\User\CustomOAuthUser;
 use HWI\Bundle\OAuthBundle\Security\Core\Authentication\Token\OAuthToken;
+use Monolog\Logger;
 use Symfony\Component\HttpFoundation\Response;
 use Symfony\Component\HttpKernel\Event\GetResponseEvent;
 use Symfony\Component\Security\Core\Authentication\AuthenticationManagerInterface;
@@ -33,7 +34,10 @@ class OAuthProxyListener implements ListenerInterface
      * @var AccessTokenService
      */
     protected $accessTokenService;
-
+    /**
+     * @var Logger
+     */
+    private $logger;
 
     /**
      * @param TokenStorageInterface $tokenStorage
@@ -47,6 +51,15 @@ class OAuthProxyListener implements ListenerInterface
         $this->accessTokenService = $accessTokenService;
     }
 
+    /**
+     * @param Logger $logger
+     */
+    public function setLogger(Logger $logger)
+    {
+        $this->logger = $logger;
+    }
+
+
     /**
      * Se crea el User y Token mediante alguno de los métodos
      *
@@ -60,27 +73,37 @@ class OAuthProxyListener implements ListenerInterface
     public function handle(GetResponseEvent $event)
     {
         $request = $event->getRequest();
+        $messageLog = "";
         // verifico si la ip esta bloqueada. Se utiliza la variable API_CIDR_DENY para almacenar las ip o rangos de ip
         if (\AuthBundle\Utils\IpUtils::checkIpDeny($request->getClientIp())) {
+            $messageLog = "Deny IP: " . $request->getClientIp();
             $error = true;
         } else if (($this->tokenStorage != null &&
             $this->tokenStorage->getToken() != null &&
             $this->tokenStorage->getToken() instanceof OAuthToken)) {
             // como los firewalls comparten info a traves del context no tengo que hacer nada, ya esta logueado.
+            $messageLog = "Firewalls (IP: " . $request->getClientIp() . ")";
             $error = false;
         } else if ($request->headers->has("php-auth-user") && $request->headers->has("php-auth-pw")) {
+            $messageLog = "PHP-AUTH (IP: " . $request->getClientIp() . ")";
             // el header contiene php-auth-user && php-auth-pw
             $error = !$this->PHPAuth($request);
         } elseif ($request->headers->has("authorization")) {
+            $messageLog = "AUTHORIZATION (IP: " . $request->getClientIp() . ")";
             // el header contiene authorization
             $error = !$this->PHPAuthorization($request);
         } elseif ($request->getClientIp()) {
+            $messageLog = "AUTHORIZATION (IP: " . $request->getClientIp() . ")";
             $error = !$this->clientIp($request);
         } else {
+            $messageLog = "NO REFERENCE. DENY ALL.";
             $error = true;
         }
         if ($error) {
+            $this->logger->info("ERROR - " . $messageLog);
             $this->deny($event);
+        } else {
+            $this->logger->info("OK - " . $messageLog);
         }
     }