Autoriser l'accès à /user-password depuis l'extérieur

La page /user-password permet aux utilisateurs de changer le mot de passe associé à leur compte. Il peut être intéressant d'ouvrir cette page sur l'extérieur:

mkdir -p /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf/VirtualHosts/
cat <<'_EOF' > /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf/VirtualHosts/27ManagerProxyPass
{
    # vim: ft=perl:
 
    $haveSSL = (exists ${modSSL}{status} and ${modSSL}{status} eq "enabled") ?  'yes' : 'no';
    $plainTextAccess = ${'httpd-admin'}{PermitPlainTextAccess} || 'no';
    $plainPort = ${'httpd-e-smith'}{TCPPort} || '80';
    $sslPort = ${modSSL}{TCPPort} || '443';
 
    $OUT = '';
    foreach $place ('server-manager','server-common','user-password')
    {   
        if (($port eq $plainPort) && ($haveSSL eq 'yes') && ($plainTextAccess ne 'yes'))
        {   
            $OUT .= '    RewriteCond %{REMOTE_ADDR} !^127\.0\.0\.1$' . "\n";
            $OUT .= "    RewriteRule ^/$place(/.*|\$)    https://%{HTTP_HOST}/$place\$1 [L,R]\n";
        }
        if ($port eq $sslPort)
        {   
            # mod_auth_tkt needs to know the protocol to write  307 redirection
            $OUT .= "    RequestHeader set X-Forwarded-Proto \"https\"\n";
        }
        $OUT .= "    ProxyPass /$place http://127.0.0.1:${'httpd-admin'}{TCPPort}/$place\n";
        $OUT .= "    ProxyPassReverse /$place http://127.0.0.1:${'httpd-admin'}{TCPPort}/$place\n";
 
        $OUT .= "    <Location /$place>\n";
        $OUT .= "        order deny,allow\n";
        $OUT .= "        deny from all\n";
        if ($port eq $plainPort)
        {   
            $OUT .= '        allow from 127.0.0.1' . "\n";
        }
        elsif (($haveSSL eq 'yes') && (($port eq $sslPort) || ($plainTextAccess ne 'yes')))
        {   
            $OUT .= "        allow from " . (($place eq 'server-manager') ? "$localAccess $externalSSLAccess" : "all") . "\n";
        } else {
            $OUT .= "        allow from $localAccess\n";
        }
        $OUT .= "    </Location>\n";
    }
}
_EOF
expand-template /etc/httpd/conf/httpd.conf
sv h /service/httpd-e-smith/