request kohana kohana-3 internal

request - ¿Cómo saber si una solicitud de Kohana es interna?



kohana-3 internal (6)

Tal vez estás buscando el método is_external :
http://kohanaframework.org/3.2/guide/api/Request#is_external

Estoy escribiendo una API usando Kohana. Cada solicitud externa debe ser firmada por el cliente para ser aceptada.

Sin embargo, a veces también necesito hacer solicitudes internas construyendo un objeto Request y llamando a execute() . En estos casos, la firma es innecesaria ya que sé que la solicitud es segura. Entonces, necesito saber que la solicitud fue interna, así que puedo omitir el control de firma.

Entonces, ¿hay alguna manera de averiguar si la solicitud se creó manualmente utilizando un objeto Request ?


Así es como terminé haciéndolo: anulé el objeto Request y le agregué una propiedad is_server_side . Ahora, cuando creo la solicitud, solo configuro esto para que sepa que ha sido creado en el servidor:

$request = Request::factory($url); $request->is_server_side(true); $response = $request->execute();

Luego, más tarde en el controlador que recibe la solicitud:

if ($this->request->is_server_side()) { // Skip signature check } else { // Do signature check }

Y aquí está la clase de solicitud anulada en application / classes / request.php :

<?php defined(''SYSPATH'') or die(''No direct script access.''); class Request extends Kohana_Request { protected $is_server_side_ = false; public function is_server_side($v = null) { if ($v === null) return $this->is_server_side_; $this->is_server_side_ = $v; } }


Mirando a través de la Solicitud, parece que su nueva solicitud se considerará una solicitud interna, pero no tiene ninguna bandera especial que establecer para decírselo. Mira 782 a 832 en Kohana_Request ... nada para ayudarte.

Con eso, te sugiero que extiendas el Kohana_Request_Internal para agregar un indicador que lo muestre como interno y que lo inserte en tu aplicación cuando necesites verificar si es interno / todos los demás.


Parece que podría resolver este problema fácilmente configurando algún tipo de variable estática que su aplicación pueda verificar. Si no es FALSO, entonces sabes que es interno.