ソースを参照

Se agregó test y chequeos en librería

Guillermo Espinoza 7 年 前
コミット
9743218594
3 ファイル変更38 行追加4 行削除
  1. 1 2
      Security/Firewall/OAuthProxyListener.php
  2. 5 2
      Utils/IpUtils.php
  3. 32 0
      tests/IpUtilsTest.php

+ 1 - 2
Security/Firewall/OAuthProxyListener.php

@@ -79,8 +79,7 @@ class OAuthProxyListener implements ListenerInterface
             }
         } elseif ($request->getClientIp()) {
             $username = $clientIp = $request->getClientIp();
-	    $auth = new \AuthBundle\Utils\IpUtils();
-            if ($auth->checkIp($clientIp) === false) {
+            if (\AuthBundle\Utils\IpUtils::checkIp($clientIp) === false) {
                 return $this->deny($event);
             }
             // @TODO: Generar access token para el caso de IP valida

+ 5 - 2
Utils/IpUtils.php

@@ -13,8 +13,11 @@ class IpUtils
      * 
      * @return boolean
      */
-    public function checkIp($clientIp, $ips = array())
+    public static function checkIp($clientIp, $ips = array())
     {
+        if (IpUtils::isIp($clientIp) === false) {
+            return false;
+        }
         // Se filtran las ips pasadas como parametros
         $ips = array_filter($ips, function($ip) {
             return IpUtils::isIp($ip);
@@ -71,7 +74,7 @@ class IpUtils
      * 
      * @return boolean
      */
-    public function isIp($ip)
+    public static function isIp($ip)
     {
         if (strpos($ip, '/') !== false) {
             $pieces = explode('/', $ip);

+ 32 - 0
tests/IpUtilsTest.php

@@ -0,0 +1,32 @@
+<?php
+
+namespace AuthBundle\tests;
+
+use PHPUnit\Framework\TestCase;
+use AuthBundle\Utils\IpUtils;
+
+/**
+ * Test básico de librería AuthBundle\IpUtils
+ */
+class IpUtilsTest extends TestCase
+{
+ 
+    public function testCheckIp()
+    {
+        $ips = array('127.0.0.1/24');
+        
+        $clientIp = '127.0.0.1';
+        $check = IpUtils::checkIp($clientIp, $ips);
+        $this->assertEquals(true, $check);
+        $this->assertTrue($check);
+        
+        $clientIp = '127.1.0.1';
+        $check = IpUtils::checkIp($clientIp, $ips);
+        $this->assertEquals(false, $check);
+        
+        $clientIp = '127.0.0';
+        $check = IpUtils::checkIp($clientIp, $ips);
+        $this->assertFalse($check);
+    }
+
+}