Move overwritehost check to isTrustedDomain

Signed-off-by: Julius Härtl <jus@bitgrid.net>
This commit is contained in:
Julius Härtl 2019-12-02 10:48:41 +01:00 committed by Backportbot
parent 9d8c0c262b
commit 419df66251
3 changed files with 21 additions and 4 deletions

View file

@ -749,9 +749,6 @@ class OC {
* FIXME: Should not be in here at all :see_no_evil:
*/
if (!OC::$CLI
// overwritehost is always trusted, workaround to not have to make
// \OC\AppFramework\Http\Request::getOverwriteHost public
&& self::$server->getConfig()->getSystemValue('overwritehost') === ''
&& !\OC::$server->getTrustedDomainHelper()->isTrustedDomain($host)
&& self::$server->getConfig()->getSystemValue('installed', false)
) {

View file

@ -69,6 +69,11 @@ class TrustedDomainHelper {
* have been configured
*/
public function isTrustedDomain($domainWithPort) {
// overwritehost is always trusted
if ($this->config->getSystemValue('overwritehost') !== '') {
return true;
}
$domain = $this->getDomainWithoutPort($domainWithPort);
// Read trusted domains from config

View file

@ -31,7 +31,11 @@ class TrustedDomainHelperTest extends \Test\TestCase {
* @param bool $result
*/
public function testIsTrustedDomain($trustedDomains, $testDomain, $result) {
$this->config->expects($this->once())
$this->config->expects($this->at(0))
->method('getSystemValue')
->with('overwritehost')
->will($this->returnValue(''));
$this->config->expects($this->at(1))
->method('getSystemValue')
->with('trusted_domains')
->will($this->returnValue($trustedDomains));
@ -108,4 +112,15 @@ class TrustedDomainHelperTest extends \Test\TestCase {
[$trustedHostTestList, 'bad..der.leading.host', false],
];
}
public function testIsTrustedDomainOverwriteHost() {
$this->config->expects($this->at(0))
->method('getSystemValue')
->with('overwritehost')
->will($this->returnValue('myproxyhost'));
$trustedDomainHelper = new TrustedDomainHelper($this->config);
$this->assertTrue($trustedDomainHelper->isTrustedDomain('myproxyhost'));
$this->assertTrue($trustedDomainHelper->isTrustedDomain('myotherhost'));
}
}