Overwrite host and webroot when forcessl is enabled

This patch enables the use of forcessl together with a multiple domains
reverse SSL proxy (owncloud/core#1099) which have different hostname
and webroot for http and https access. The code assumes that the ssl
proxy (https) hostname and webroot is configured via overwritehost and
overwritewebroot.
This commit is contained in:
herbrechtsmeier 2013-02-23 12:58:06 +01:00
parent 0629ff4dd9
commit d4f98923b9
1 changed files with 4 additions and 3 deletions

View File

@ -11,9 +11,10 @@ class OC_Request {
* @brief Check overwrite condition
* @returns true/false
*/
private static function isOverwriteCondition() {
private static function isOverwriteCondition($type = '') {
$regex = '/' . OC_Config::getValue('overwritecondaddr', '') . '/';
return $regex === '//' or preg_match($regex, $_SERVER['REMOTE_ADDR']) === 1;
return $regex === '//' or preg_match($regex, $_SERVER['REMOTE_ADDR']) === 1
or ($type <> 'protocol' and OC_Config::getValue('forcessl', false));
}
/**
@ -52,7 +53,7 @@ class OC_Request {
* Returns the server protocol. It respects reverse proxy servers and load balancers
*/
public static function serverProtocol() {
if(OC_Config::getValue('overwriteprotocol', '')<>'' and self::isOverwriteCondition()) {
if(OC_Config::getValue('overwriteprotocol', '')<>'' and self::isOverwriteCondition('protocol')) {
return OC_Config::getValue('overwriteprotocol');
}
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO'])) {