diff --git a/lib/private/appframework/http/request.php b/lib/private/appframework/http/request.php
index 7d6a49202c69a22232773e1d999c04a97ffe0511..f826ef45bb5e135ebe0f043e4cdf8102e312c57e 100644
--- a/lib/private/appframework/http/request.php
+++ b/lib/private/appframework/http/request.php
@@ -659,11 +659,6 @@ class Request implements \ArrayAccess, \Countable, IRequest {
 	 * @return string Server host
 	 */
 	public function getServerHost() {
-		// FIXME: Ugly workaround that we need to get rid of
-		if (\OC::$CLI && defined('PHPUNIT_RUN')) {
-			return 'localhost';
-		}
-
 		// overwritehost is always trusted
 		$host = $this->getOverwriteHost();
 		if ($host !== null) {
@@ -681,7 +676,11 @@ class Request implements \ArrayAccess, \Countable, IRequest {
 			return $host;
 		} else {
 			$trustedList = $this->config->getSystemValue('trusted_domains', []);
-			return $trustedList[0];
+			if(!empty($trustedList)) {
+				return $trustedList[0];
+			} else {
+				return '';
+			}
 		}
 	}
 
diff --git a/tests/lib/appframework/http/RequestTest.php b/tests/lib/appframework/http/RequestTest.php
index a4bf3519bfcecc69e3fc5cec6240317e04342156..de3430d757c7e44f29f5ca53810a897e43aae699 100644
--- a/tests/lib/appframework/http/RequestTest.php
+++ b/tests/lib/appframework/http/RequestTest.php
@@ -773,7 +773,23 @@ class RequestTest extends \Test\TestCase {
 		$this->assertEquals('from.forwarded.host2:8080',  $request->getInsecureServerHost());
 	}
 
-	public function testGetServerHost() {
+	public function testGetServerHostWithOverwriteHost() {
+		$this->config
+			->expects($this->at(0))
+			->method('getSystemValue')
+			->with('overwritehost')
+			->will($this->returnValue('my.overwritten.host'));
+		$this->config
+			->expects($this->at(1))
+			->method('getSystemValue')
+			->with('overwritecondaddr')
+			->will($this->returnValue(''));
+		$this->config
+			->expects($this->at(2))
+			->method('getSystemValue')
+			->with('overwritehost')
+			->will($this->returnValue('my.overwritten.host'));
+
 		$request = new Request(
 			[],
 			$this->secureRandom,
@@ -781,7 +797,80 @@ class RequestTest extends \Test\TestCase {
 			$this->stream
 		);
 
-		$this->assertEquals('localhost',  $request->getServerHost());
+		$this->assertEquals('my.overwritten.host',  $request->getServerHost());
+	}
+
+	public function testGetServerHostWithTrustedDomain() {
+		$this->config
+			->expects($this->at(3))
+			->method('getSystemValue')
+			->with('trusted_domains')
+			->will($this->returnValue(['my.trusted.host']));
+
+		$request = new Request(
+			[
+				'server' => [
+					'HTTP_X_FORWARDED_HOST' => 'my.trusted.host',
+				],
+			],
+			$this->secureRandom,
+			$this->config,
+			$this->stream
+		);
+
+		$this->assertEquals('my.trusted.host',  $request->getServerHost());
+	}
+
+	public function testGetServerHostWithUntrustedDomain() {
+		$this->config
+			->expects($this->at(3))
+			->method('getSystemValue')
+			->with('trusted_domains')
+			->will($this->returnValue(['my.trusted.host']));
+		$this->config
+			->expects($this->at(4))
+			->method('getSystemValue')
+			->with('trusted_domains')
+			->will($this->returnValue(['my.trusted.host']));
+
+		$request = new Request(
+			[
+				'server' => [
+					'HTTP_X_FORWARDED_HOST' => 'my.untrusted.host',
+				],
+			],
+			$this->secureRandom,
+			$this->config,
+			$this->stream
+		);
+
+		$this->assertEquals('my.trusted.host',  $request->getServerHost());
+	}
+
+	public function testGetServerHostWithNoTrustedDomain() {
+		$this->config
+			->expects($this->at(3))
+			->method('getSystemValue')
+			->with('trusted_domains')
+			->will($this->returnValue([]));
+		$this->config
+			->expects($this->at(4))
+			->method('getSystemValue')
+			->with('trusted_domains')
+			->will($this->returnValue([]));
+
+		$request = new Request(
+			[
+				'server' => [
+					'HTTP_X_FORWARDED_HOST' => 'my.untrusted.host',
+				],
+			],
+			$this->secureRandom,
+			$this->config,
+			$this->stream
+		);
+
+		$this->assertEquals('',  $request->getServerHost());
 	}
 
 	public function testGetOverwriteHostDefaultNull() {