From ea0709ddb5d412be90b423f4fc279b33812b7ebf Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Wed, 23 Sep 2015 22:58:00 +0200 Subject: switched from fastcgi to mpm-itk and mod-perl diff --git a/README b/README index bf51043..072cf0c 100644 --- a/README +++ b/README @@ -31,8 +31,8 @@ LICENSE Installation ============ -# sudo aptitude install apache2 libapache2-mod-fcgid libconfig-inifiles-perl libcgi-fast-perl libdbd-mysql-perl libjson-pp-perl libxml-quote-perl librhrd-perl libjs-jquery rivendell-server -# sudo a2enmod ssl authnz_ldap fcgid proxy_wstunnel +# sudo aptitude install apache2 libapache2-mpm-itk libapache2-mod-perl2 libconfig-inifiles-perl libdbd-mysql-perl libjson-pp-perl libxml-quote-perl librhrd-perl libjs-jquery rivendell-server +# sudo a2enmod ssl authnz_ldap perl proxy_wstunnel # sudo /etc/init.d/apache2 restart add the following to /etc/apache2/mods-endabled/ldap.conf: @@ -46,12 +46,16 @@ LDAPTrustedGlobalCert CA_BASE64 /etc/ldap/ldapscert.pem add the following to the virtualhost config: ~~~snip~~~ + AssignUserID rduser rivendell + Include /etc/rivendell/apache-2.4.conf Include /etc/apache2/conf-available/javascript-common.conf Alias /rh-bin/ /var/www/rhwebimport/rh-bin/ - SetHandler fcgid-script + SetHandler perl-script + PerlResponseHandler ModPerl::Registry + PerlOptions +ParseHeaders Options +ExecCGI Require all granted diff --git a/rh-bin/authtoken.json b/rh-bin/authtoken.json index 743ac96..2c19cb0 100755 --- a/rh-bin/authtoken.json +++ b/rh-bin/authtoken.json @@ -22,45 +22,42 @@ # use strict; -use CGI::Fast; use RHRD::rddb; use JSON; -while (my $q = CGI::Fast->new) { - my $status = 'ERROR'; - my $errorstring = 'unknown'; - my $username = ''; - my $token = ''; - my $fullname = ''; - my $responsecode = 500; +my $status = 'ERROR'; +my $errorstring = 'unknown'; +my $username = ''; +my $token = ''; +my $fullname = ''; +my $responsecode = 500; - if(defined $ENV{REMOTE_USER}) { - my $dbh; - ($dbh, $status, $errorstring) = RHRD::rddb::opendb(); - if(defined $dbh) { - $username = $ENV{REMOTE_USER}; - ($token, $status, $errorstring) = RHRD::rddb::get_token($dbh, $username); - $token = '' unless($token); - ($fullname, $status, $errorstring) = RHRD::rddb::get_fullname($dbh, $username); - $fullname = '' unless($fullname); - RHRD::rddb::closedb($dbh); - if($status == "OK") { - $responsecode = 200; - } +if(defined $ENV{REMOTE_USER}) { + my $dbh; + ($dbh, $status, $errorstring) = RHRD::rddb::opendb(); + if(defined $dbh) { + $username = $ENV{REMOTE_USER}; + ($token, $status, $errorstring) = RHRD::rddb::get_token($dbh, $username); + $token = '' unless($token); + ($fullname, $status, $errorstring) = RHRD::rddb::get_fullname($dbh, $username); + $fullname = '' unless($fullname); + RHRD::rddb::closedb($dbh); + if($status == "OK") { + $responsecode = 200; } - } else { - $errorstring = 'no username defined - are you logged in?'; - $responsecode = 400; } +} else { + $errorstring = 'no username defined - are you logged in?'; + $responsecode = 400; +} - my %answer; - $answer{'status'} = $status; - $answer{'errorstring'} = $errorstring; - $answer{'username'} = $username; - $answer{'fullname'} = $fullname; - $answer{'token'} = $token; +my %answer; +$answer{'status'} = $status; +$answer{'errorstring'} = $errorstring; +$answer{'username'} = $username; +$answer{'fullname'} = $fullname; +$answer{'token'} = $token; - print "Content-type: application/json; charset=UTF-8\n"; - print "Status: $responsecode\n\n"; - print encode_json \%answer; -} +print "Content-type: application/json; charset=UTF-8\n"; +print "Status: $responsecode\n\n"; +print encode_json \%answer; diff --git a/rh-bin/listdropboxes.cgi b/rh-bin/listdropboxes.cgi index f008c51..a9df374 100755 --- a/rh-bin/listdropboxes.cgi +++ b/rh-bin/listdropboxes.cgi @@ -22,76 +22,75 @@ # use strict; -use CGI::Fast; +use CGI; use POSIX; use XML::Quote; use RHRD::rddb; -while (my $q = CGI::Fast->new) { - my $status = 'ERROR'; - my $errorstring = 'unknown'; - my $responsecode = 500; - my @dropboxes = (); +my $status = 'ERROR'; +my $errorstring = 'unknown'; +my $responsecode = 500; +my @dropboxes = (); - my $username = $q->param('LOGIN_NAME'); - my $token = $q->param('PASSWORD'); +my $q = CGI->new; +my $username = $q->param('LOGIN_NAME'); +my $token = $q->param('PASSWORD'); - my $dbh; - ($dbh, $status, $errorstring) = RHRD::rddb::opendb(); - if(defined $dbh) { - my $result; - ($result, $status, $errorstring) = RHRD::rddb::check_token($dbh, $username, $token); - if($result == 1) { - $responsecode = 200; - @dropboxes = RHRD::rddb::get_dropboxes($dbh, $username); - unless (defined $dropboxes[0]) { - $responsecode = 500; - $status = $dropboxes[1]; - $errorstring = $dropboxes[2]; - } - } elsif($result == 0) { - $responsecode = 401; - } else { +my $dbh; +($dbh, $status, $errorstring) = RHRD::rddb::opendb(); +if(defined $dbh) { + my $result; + ($result, $status, $errorstring) = RHRD::rddb::check_token($dbh, $username, $token); + if($result == 1) { + $responsecode = 200; + @dropboxes = RHRD::rddb::get_dropboxes($dbh, $username); + unless (defined $dropboxes[0]) { $responsecode = 500; + $status = $dropboxes[1]; + $errorstring = $dropboxes[2]; } - RHRD::rddb::closedb($dbh); + } elsif($result == 0) { + $responsecode = 401; + } else { + $responsecode = 500; } + RHRD::rddb::closedb($dbh); +} - print "Content-type: application/xml; charset=UTF-8\n"; - print "Status: $responsecode\n\n"; +print "Content-type: application/xml; charset=UTF-8\n"; +print "Status: $responsecode\n\n"; - if($responsecode != 200) { - print "\n"; - print " " . xml_quote($responsecode) . "\n"; - print " " . xml_quote($errorstring) . "\n"; - print "\n"; - } else { - print "\n"; - for my $href (@dropboxes) { - print " \n"; - print " " . xml_quote($href->{'GROUP'}) . "\n"; - print " " . xml_quote($href->{'GROUPDESC'}) . "\n"; - print " " . xml_quote($href->{'GROUPLOWCART'}) . "\n"; - print " " . xml_quote($href->{'GROUPHIGHCART'}) . "\n"; - print " " . floor($href->{'NORMLEVEL'}/100) . "\n"; - print " " . floor($href->{'TRIMLEVEL'}/100) . "\n"; - print " " . xml_quote($href->{'PARAM'}) . "\n"; - print " " . xml_quote($href->{'TYPE'}) . "\n"; - if($href->{'TYPE'} eq "show") { - print " " . xml_quote($href->{'SHOWID'}) . "\n"; - print " " . xml_quote($href->{'SHOWTITLE'}) . "\n"; - print " " . xml_quote($href->{'SHOWLOG'}) . "\n"; - print " " . xml_quote($href->{'SHOWRHYTHM'}) . "\n"; - print " " . xml_quote($href->{'SHOWDOW'}) . "\n"; - print " " . xml_quote($href->{'SHOWSTARTTIME'}) . "\n"; - print " " . xml_quote($href->{'SHOWLEN'}) . "\n"; - } elsif($href->{'TYPE'} eq "jingle") { - print " " . xml_quote($href->{'JINGLETITLE'}) . "\n"; - } elsif($href->{'TYPE'} eq "musicpool") { - print " " . xml_quote($href->{'MUSICPOOLTITLE'}) . "\n"; - } - print " \n"; +if($responsecode != 200) { + print "\n"; + print " " . xml_quote($responsecode) . "\n"; + print " " . xml_quote($errorstring) . "\n"; + print "\n"; +} else { + print "\n"; + for my $href (@dropboxes) { + print " \n"; + print " " . xml_quote($href->{'GROUP'}) . "\n"; + print " " . xml_quote($href->{'GROUPDESC'}) . "\n"; + print " " . xml_quote($href->{'GROUPLOWCART'}) . "\n"; + print " " . xml_quote($href->{'GROUPHIGHCART'}) . "\n"; + print " " . floor($href->{'NORMLEVEL'}/100) . "\n"; + print " " . floor($href->{'TRIMLEVEL'}/100) . "\n"; + print " " . xml_quote($href->{'PARAM'}) . "\n"; + print " " . xml_quote($href->{'TYPE'}) . "\n"; + if($href->{'TYPE'} eq "show") { + print " " . xml_quote($href->{'SHOWID'}) . "\n"; + print " " . xml_quote($href->{'SHOWTITLE'}) . "\n"; + print " " . xml_quote($href->{'SHOWLOG'}) . "\n"; + print " " . xml_quote($href->{'SHOWRHYTHM'}) . "\n"; + print " " . xml_quote($href->{'SHOWDOW'}) . "\n"; + print " " . xml_quote($href->{'SHOWSTARTTIME'}) . "\n"; + print " " . xml_quote($href->{'SHOWLEN'}) . "\n"; + } elsif($href->{'TYPE'} eq "jingle") { + print " " . xml_quote($href->{'JINGLETITLE'}) . "\n"; + } elsif($href->{'TYPE'} eq "musicpool") { + print " " . xml_quote($href->{'MUSICPOOLTITLE'}) . "\n"; } - print "\n"; + print " \n"; } + print "\n"; } -- cgit v0.10.2