diff options
| author | Paul Buetow (pluto.buetow.org) <paul@buetow.org> | 2013-09-07 15:21:06 +0200 |
|---|---|---|
| committer | Paul Buetow (pluto.buetow.org) <paul@buetow.org> | 2013-09-07 15:21:06 +0200 |
| commit | 30221aa2a5ba578e21cf2fd99748d59c23fede39 (patch) | |
| tree | f535ab99a37981278a417fad64512d49382c35f6 | |
| parent | 5aeb8c969a65fd2abf0d9f3dd4d010a7a3b558bd (diff) | |
remove cookies/sessions
| -rw-r--r-- | Xerl.pm | 10 | ||||
| -rw-r--r-- | Xerl/Page/Templates.pm | 1 | ||||
| -rw-r--r-- | Xerl/Plugins/Session.pm | 127 | ||||
| -rw-r--r-- | config.txt | 1 |
4 files changed, 2 insertions, 137 deletions
@@ -42,7 +42,6 @@ use Xerl::Page::Document; use Xerl::Page::Parameter; use Xerl::Page::Request; use Xerl::Page::Templates; -use Xerl::Plugins::Session; sub run($) { my Xerl $self = $_[0]; @@ -58,13 +57,7 @@ sub run($) { $config->parse(); return undef if $config->finish_request_exists(); - my Xerl::Plugins::Session $session = - Xerl::Plugins::Session->new( config => $config ); - - unless ( $config->sessionsdisable_exists() ) { - $session->process(); - $config->set_session($session); - } + $config->defaults(); my Xerl::Page::Parameter $parameter = Xerl::Page::Parameter->new( config => $config ); @@ -72,6 +65,7 @@ sub run($) { $parameter->parse(); return undef if $config->finish_request_exists(); + if ( $config->document_exists() ) { my Xerl::Page::Document $document = Xerl::Page::Document->new( config => $config ); diff --git a/Xerl/Page/Templates.pm b/Xerl/Page/Templates.pm index 8b7c6d1..7c31a27 100644 --- a/Xerl/Page/Templates.pm +++ b/Xerl/Page/Templates.pm @@ -84,7 +84,6 @@ sub parse($) { } else { - my $xmlconfigpath = $config->get_hostpath() . 'config.xml'; $xmlconfigpath = $config->get_defaulthostpath() . 'config.xml' diff --git a/Xerl/Plugins/Session.pm b/Xerl/Plugins/Session.pm deleted file mode 100644 index 2ecc9b0..0000000 --- a/Xerl/Plugins/Session.pm +++ /dev/null @@ -1,127 +0,0 @@ -# Xerl (c) 2005-2011, Dipl.-Inform. (FH) Paul C. Buetow -# -# E-Mail: xerl@dev.buetow.org WWW: http://xerl.buetow.org -# -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# * Neither the name of buetow.org nor the names of its contributors may -# be used to endorse or promote products derived from this software -# without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED Paul C. Buetow ``AS IS'' AND ANY EXPRESS OR -# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -# DISCLAIMED. IN NO EVENT Paul C. Buetow BE LIABLE FOR ANY DIRECT, -# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. - -package Xerl::Plugins::Session; - -use strict; -use warnings; - -use CGI; -use CGI::Session; - -use Xerl::Base; -use Xerl::Main::Global; -use Xerl::Page::Configure; - -sub process($) { - my Xerl::Plugins::Session $self = $_[0]; - my Xerl::Page::Configure $config = $self->get_config(); - - my CGI $cgi = CGI->new(); - - my CGI::Session $session = do { - my $cookie = $cgi->cookie( -name => 'session' ); - $cookie ? $self->_get_session($cookie) : $self->_create_session(); - }; - - $self->set_session($session); - - my @cookievals = split ',', $config->get_cookievals(); - my @ignore = $self->_store_cookie_vals( \@cookievals ); - $self->_restore_cookie_vals( \@cookievals, \@ignore ); - $config->defaults(); - - my ( $sessionid, $host ) = ( $session->id(), $config->get_host() ); - print "Set-Cookie: session=$sessionid; domain=$host; path=/\n"; - - return undef; -} - -sub _create_session($) { - my Xerl::Plugins::Session $self = $_[0]; - my Xerl::Page::Configure $config = $self->get_config(); - - return CGI::Session->new( 'driver:File', undef ); -} - -sub _get_session($$) { - my Xerl::Plugins::Session $self = $_[0]; - my Xerl::Page::Configure $config = $self->get_config(); - my $cookie = $_[1]; - - CGI::Session->name($cookie); - return CGI::Session->new( 'driver:File', $cookie ); -} - -sub _store_cookie_vals($$) { - my Xerl::Plugins::Session $self = $_[0]; - my Xerl::Page::Configure $config = $self->get_config(); - my CGI::Session $session = $self->get_session(); - my $cookievals = $_[1]; - - my @set; - - for my $key (@$cookievals) { - if ( $config->exists($key) ) { - my $val = $config->getval($key); - $session->param( $key => $val ); - push @set, $key; - - } - elsif ( $config->exists("not$key") ) { - $session->clear($key); - push @set, "not$key"; - } - } - - return grep !/\.feed/, @set; -} - -sub _restore_cookie_vals($$$) { - my Xerl::Plugins::Session $self = $_[0]; - my Xerl::Page::Configure $config = $self->get_config(); - my CGI::Session $session = $self->get_session(); - my ( $cookievals, $ignore ) = @_[ 1 .. 2 ]; - - KEY: for my $key (@$cookievals) { - for my $ig (@$ignore) { - next KEY if $key eq $ig; - } - - if ( defined( my $val = $session->param($key) ) ) { - $val =~ s#/\.\.##g; - $config->setval( $key => $val ) if $val; - } - } - - return undef; -} - -1; - @@ -22,5 +22,4 @@ hidesubhome=1 hostroot=/usr/local/www/xerlhosts/branches/stable/hosts/ statsroot=/usr/local/www/xerlstats/ hyperion.buetow.org=ssl.buetow.org -sessiondisable=1 404=http://www.buetow.org |
