Skip to content

Commit a48889f

Browse files
committed
[feature/request-class] Add is_secure method to request for HTTPS
PHPBB3-9716
1 parent 24e9fb2 commit a48889f

4 files changed

Lines changed: 33 additions & 0 deletions

File tree

phpBB/includes/request/interface.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,13 @@ public function is_set($var, $super_global = phpbb_request_interface::REQUEST);
121121
*/
122122
public function is_ajax();
123123

124+
/**
125+
* Checks if the current request is happening over HTTPS.
126+
*
127+
* @return bool True if the request is secure.
128+
*/
129+
public function is_secure();
130+
124131
/**
125132
* Returns all variable names for a given super global
126133
*

phpBB/includes/request/request.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -326,6 +326,16 @@ public function is_ajax()
326326
return $this->header('X-Requested-With') == 'XMLHttpRequest';
327327
}
328328

329+
/**
330+
* Checks if the current request is happening over HTTPS.
331+
*
332+
* @return bool True if the request is secure.
333+
*/
334+
public function is_secure()
335+
{
336+
return $this->server('HTTPS') == 'on';
337+
}
338+
329339
/**
330340
* Returns all variable names for a given super global
331341
*

tests/mock/request.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,11 @@ public function is_ajax()
5757
return false;
5858
}
5959

60+
public function is_secure()
61+
{
62+
return false;
63+
}
64+
6065
public function variable_names($super_global = phpbb_request_interface::REQUEST)
6166
{
6267
return array_keys($this->data[$super_global]);

tests/request/request_test.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,17 @@ public function test_is_ajax_with_ajax()
117117
$this->assertTrue($this->request->is_ajax());
118118
}
119119

120+
public function test_is_secure()
121+
{
122+
$this->assertFalse($this->request->is_secure());
123+
124+
$this->request->enable_super_globals();
125+
$_SERVER['HTTPS'] = 'on';
126+
$this->request = new phpbb_request($this->type_cast_helper);
127+
128+
$this->assertTrue($this->request->is_secure());
129+
}
130+
120131
public function test_variable_names()
121132
{
122133
$expected = array('test', 'unset');

0 commit comments

Comments
 (0)