deny remote access to elements/*html, RT#23357
[freeside.git] / htetc / freeside-base2.conf
index 38f7840..e981ef2 100644 (file)
@@ -6,16 +6,67 @@ PerlModule HTML::Mason
 PerlSetVar MasonArgsMethod CGI
 PerlModule HTML::Mason::ApacheHandler
 
+PerlChildInitHandler "sub { srand }"
+
 PerlRequire "%%%MASON_HANDLER%%%"
 
+#Locale::SubCountry
+#
+AddDefaultCharset UTF-8
+
+PerlModule FS::AuthCookieHandler
+
+#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%%%>
-AuthName Freeside
-AuthType Basic
-AuthUserFile /usr/local/etc/freeside/htpasswd
-require valid-user
-<Files ~ (\.cgi|\.html)>
-SetHandler perl-script
-PerlHandler HTML::Mason
+
+    AuthName Freeside
+    AuthType FS::AuthCookieHandler
+    PerlAuthenHandler FS::AuthCookieHandler->authenticate
+    PerlAuthzHandler  FS::AuthCookieHandler->authorize
+    require valid-user
+
+    <Files ~ "(\.cgi|\.html)$">
+        SetHandler perl-script
+        PerlHandler HTML::Mason
+    </Files>
+
+</Directory>
+
+<Files login>
+    AuthName Freeside
+    AuthType FS::AuthCookieHandler
+    SetHandler perl-script
+    PerlHandler FS::AuthCookieHandler->login
 </Files>
+
+<Directory %%%FREESIDE_DOCUMENT_ROOT%%%/elements/>
+    <Files "freeside.css">
+        Satisfy any
+    </Files>
+
+    <Files ~ "(\.html)$">
+        Deny from all
+        SetHandler None
+    </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>
+
+<Directory %%%FREESIDE_DOCUMENT_ROOT%%%/REST/1.0/>
+    Satisfy any
+    SetHandler perl-script
+    PerlHandler HTML::Mason
 </Directory>