<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog cakephp en español por Hospedaxes &#187; ssl</title>
	<atom:link href="http://cakephp.hospedaxes.com/tag/ssl/feed" rel="self" type="application/rss+xml" />
	<link>http://cakephp.hospedaxes.com</link>
	<description>Blog sobre desarrollo web con cakephp en español por Hospedaxes</description>
	<lastBuildDate>Mon, 26 Apr 2010 07:11:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Conexiones HTTP seguras (https) en CakePHP 1.2</title>
		<link>http://cakephp.hospedaxes.com/conexiones-http-seguras-https-en-cakephp-12</link>
		<comments>http://cakephp.hospedaxes.com/conexiones-http-seguras-https-en-cakephp-12#comments</comments>
		<pubDate>Thu, 09 Oct 2008 07:13:04 +0000</pubDate>
		<dc:creator>nuria</dc:creator>
				<category><![CDATA[cakephp-1.2]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[conexiones seguras]]></category>
		<category><![CDATA[http seguro]]></category>
		<category><![CDATA[https]]></category>
		<category><![CDATA[ssl]]></category>

		<guid isPermaLink="false">http://cakephp.hospedaxes.com/?p=65</guid>
		<description><![CDATA[Para el desarrollo de conexiones seguras de nuestra página web, vamos a utilizar un método que hemos visto en el weblog de Tanveer. Lo normal es que necesitemos que algunas de las páginas de la web sean seguras, como pueden ser formularios de contratación de servicios, y otras no lo sean, por ejemplo páginas simples [...]]]></description>
			<content:encoded><![CDATA[<p>Para el desarrollo de conexiones seguras de nuestra página web, vamos a utilizar un método que hemos visto en el <a title="Creatiing a route usage https ssl connection" href="http://neeocis.wordpress.com/2008/07/09/cakephp-creating-a-route-usage-https-ssl-connection/">weblog de Tanveer</a>. Lo normal es que necesitemos que algunas de las páginas de la web sean seguras, como pueden ser formularios de contratación de servicios, y otras no lo sean, por ejemplo páginas simples de información de dichos servicios. Por lo que desarrollaremos un sistema que nos permita hacer el cambio entre unas y otras.</p>
<p>Utilizamos para implementar este mecanismo el <a title="Componenete para forzar conexiones seguras" href="http://bakery.cakephp.org/articles/view/component-for-forcing-a-secure-connection">componente de la Bakery de CakePHP para forzar conexiones seguras</a>, y lo utilizaremos de la misma manera que se explica en este artículo, pero añadiéndole la funcionalidad inversa. Lo explicaremos paso a paso:</p>
<p>- Añadimos el componente ssl.php, en la carpeta app/controllers/components/ con el siguiente contenido:</p>
<pre class="prettyprint"><code>&lt;?php
class SslComponent extends Object {

   var $components = array('RequestHandler');

   var $Controller = null;

   function initialize(&amp;$Controller) {
      $this-&gt;Controller = $Controller;
   }

   function force() {
      if(!$this-&gt;RequestHandler-&gt;isSSL()) {
        $this-&gt;Controller-&gt;redirect('https://'.$this-&gt;__url());
      }
   }

   function unforce() {
      if($this-&gt;RequestHandler-&gt;isSSL()) {
         $this-&gt;Controller-&gt;redirect('http://'.$this-&gt;__urll());
      }
   }

   function __url() {
      $port = env('SERVER_PORT') == 80 ? '' : ':'.env('SERVER_PORT');
      return env('SERVER_NAME').$port.env('REQUEST_URI');
   }

   function __urll() {
      $port = env('SERVER_PORT') == 443 ? '' : ':'.env('SERVER_PORT');
      return env('SERVER_NAME').$port.env('REQUEST_URI');
   }

}
?&gt;</code></pre>
<p>- Añadimos en el app_controller (cake/libs/controlller/app_controller.php) la redirección a conexión segura para aquellas acciones que nos interese. Ésta es otra diferencia con el artículo de la Bakery, ya que en ésta se hace esa redirección desde cada acción de cada controlador.</p>
<pre class="prettyprint"><code>&lt;?php
class AppController extends Controller {

   var $components = array( 'Ssl' );

   public function beforeRender(){
      $action = array( 'action1', 'action2' );
      if( in_array( $this-&gt;params['action'] , $action ) ){
         $this-&gt;Ssl-&gt;force();
      }else{
         $this-&gt;Ssl-&gt;unforce();
      }
   }

}
?&gt;</code></pre>
<p>Podríamos cambiar en este punto la condición por la que nos interese para nuestro caso, por ejemplo, que sean controladores (todas las acciones de ese controlador) los que necesiten añadir este tipo de conexión.</p>
]]></content:encoded>
			<wfw:commentRss>http://cakephp.hospedaxes.com/conexiones-http-seguras-https-en-cakephp-12/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

