--- /dev/null
+package FS::AuthCookieHandler24;
+use base qw( Apache2::AuthCookie );
+
+use strict;
+use FS::UID qw( adminsuidsetup preuser_setup );
+use FS::CurrentUser;
+use FS::Auth;
+
+sub authen_cred {
+ my( $self, $r, $username, $password ) = @_;
+
+ preuser_setup();
+
+ my $info = {};
+
+ unless ( FS::Auth->authenticate($username, $password, $info) ) {
+ warn "failed auth $username from ". $r->useragent_ip. "\n";
+ return undef;
+ }
+
+ warn "authenticated $username from ". $r->useragent_ip. "\n";
+
+ FS::CurrentUser->load_user( $username,
+ 'autocreate' => FS::Auth->auth_class->autocreate,
+ %$info,
+ );
+
+ FS::CurrentUser->new_session;
+}
+
+sub authen_ses_key {
+ my( $self, $r, $sessionkey ) = @_;
+
+ preuser_setup();
+
+ my $curuser = FS::CurrentUser->load_user_session( $sessionkey );
+
+ unless ( $curuser ) {
+ warn "bad session $sessionkey from ". $r->useragent_ip. "\n";
+ return undef;
+ }
+
+ $curuser->username;
+}
+
+1;
FS.pm
FS/AccessRight.pm
FS/AuthCookieHandler.pm
+FS/AuthCookieHandler24.pm
FS/Auth/external.pm
FS/Auth/internal.pm
FS/Auth/legacy.pm
t/part_pkg_currency.t
FS/cust_payby.pm
t/cust_payby.t
+FS/vend_main.pm
+t/vend_main.t
+FS/vend_class.pm
+t/vend_class.t
+FS/vend_bill.pm
+t/vend_bill.t
+FS/vend_pay.pm
+t/vend_pay.t
+FS/vend_bill_pay.pm
+t/vend_bill_pay.t
#package maintainers
DIST_CONF = ${FREESIDE_CONF}/default_conf
+#mod_perl v2 1.999_22 on Apache 2.0 through 2.3 (Debian ancient through 7.x)
+#APACHE_VERSION=2
+#Apache 2.4 (Debian 8.x)
+APACHE_VERSION=2.4
+
#deb
FREESIDE_DOCUMENT_ROOT = /var/www/freeside
#redhat, fedora, mandrake
#HTTPD_RESTART = /usr/local/apache/bin/apachectl stop; sleep 10; /usr/local/apache/bin/apachectl startssl
#(an include directory, not a file, "Include /etc/apache/conf.d" in httpd.conf)
+#debian unstable/8.0+, apache2.4
+APACHE_CONF = /etc/apache2/conf-available
#deb (3.1+), apache2
-APACHE_CONF = /etc/apache2/conf.d
+#APACHE_CONF = /etc/apache2/conf.d
+
INSSERV_OVERRIDE = /etc/insserv/overrides
FREESIDE_RESTART = ${INIT_FILE} restart
install-apache:
[ -e ${APACHE_CONF}/freeside-base.conf ] && rm ${APACHE_CONF}/freeside-base.conf || true
[ -d ${APACHE_CONF} ] && \
- ( install -o root -m 755 htetc/freeside-base2.conf ${APACHE_CONF} && \
+ ( install -o root -m 755 htetc/freeside-base${APACHE_VERSION}.conf ${APACHE_CONF} && \
( [ ${RT_ENABLED} -eq 1 ] && install -o root -m 755 htetc/freeside-rt.conf ${APACHE_CONF} || true ) && \
( [ ${TORRUS_ENABLED} -eq 1 ] && install -o root -m 755 htetc/freeside-torrus.conf ${APACHE_CONF} || true ) && \
perl -p -i -e "\
s'%%%MASON_HANDLER%%%'${MASON_HANDLER}'g; \
" ${APACHE_CONF}/freeside-*.conf \
) || true
+ [ -d ${APACHE_CONF} ] && [ -x /usr/sbin/a2enconf ] && ( /usr/sbin/a2enconf freeside-base${APACHE_VERSION} ) || true
+ [ -d ${APACHE_CONF} ] && [ ${APACHE_VERSION} = '2.4' ] && [ -x /usr/sbin/a2disconf ] && ( /usr/sbin/a2disconf freeside-base2 ) || true
+ [ -d ${APACHE_CONF} ] && [ -x /usr/sbin/a2enconf ] && [ ${RT_ENABLED} -eq 1 ] && ( /usr/sbin/a2enconf freeside-rt ) || true
[ -d ${INSSERV_OVERRIDE} ] && [ -x /sbin/insserv ] && ( install -o root -m 755 init.d/insserv-override-apache2 ${INSSERV_OVERRIDE}/apache2 && insserv -d ) || true
install-selfservice:
--- /dev/null
+PerlModule Apache2::compat
+
+#PerlModule Apache::DBI
+
+PerlModule HTML::Mason
+PerlSetVar MasonArgsMethod CGI
+PerlModule HTML::Mason::ApacheHandler
+
+PerlChildInitHandler "sub { srand }"
+
+PerlRequire "%%%MASON_HANDLER%%%"
+
+#Locale::SubCountry
+#
+AddDefaultCharset UTF-8
+
+PerlModule FS::AuthCookieHandler24
+PerlAddAuthzProvider user FS::AuthCookieHandler24->authz_handler
+
+#XXX need to also work properly for installs w/o /freeside/ in path
+PerlSetVar FreesideLoginScript /freeside/loginout/login.html
+
+#PerlSetVar FreesideEverSecure 1
+PerlSetVar FreesideHttpOnly 1
+
+<Directory %%%FREESIDE_DOCUMENT_ROOT%%%>
+
+ #work around Apache2::AuthCookie vs. mod_dir
+ DirectoryIndex disabled
+ Options -Indexes
+ #XXX need to also work properly for installs w/o /freeside/ in path
+ RewriteEngine On
+ RewriteBase /freeside/
+ RewriteRule ^/?$ /freeside/index.html [L,R=301]
+
+ AuthName Freeside
+ AuthType FS::AuthCookieHandler24
+ PerlAuthenHandler FS::AuthCookieHandler24->authenticate
+ require valid-user
+
+ <Files ~ "(\.cgi|\.html)$">
+ SetHandler perl-script
+ PerlHandler HTML::Mason
+ </Files>
+
+</Directory>
+
+<Files login>
+ AuthName Freeside
+ AuthType FS::AuthCookieHandler24
+ SetHandler perl-script
+ PerlHandler FS::AuthCookieHandler24->login
+</Files>
+
+<Directory %%%FREESIDE_DOCUMENT_ROOT%%%/loginout/>
+ <Files "login.html">
+ Satisfy any
+ </Files>
+</Directory>
+
+<Directory %%%FREESIDE_DOCUMENT_ROOT%%%/elements/>
+ <Files "freeside.css">
+ Satisfy any
+ </Files>
+</Directory>
+
+<Directory %%%FREESIDE_DOCUMENT_ROOT%%%/rt/Helpers/>
+ SetHandler perl-script
+ PerlHandler HTML::Mason
+</Directory>
+
+<Directory %%%FREESIDE_DOCUMENT_ROOT%%%/rt/REST/1.0/NoAuth/>
+ Satisfy any
+</Directory>