aboutsummaryrefslogtreecommitdiffhomepage
path: root/application/api
diff options
context:
space:
mode:
authorChristoph Stoettner <christoph.stoettner@stoeps.de>2020-09-29 12:15:04 +0200
committerChristoph Stoettner <christoph.stoettner@stoeps.de>2020-09-29 12:15:04 +0200
commit676571dab927b0fb9b3746c36f0d7540e8dba2b5 (patch)
treeac3b2adda982687b51e62789a62e61bab28abddd /application/api
parent6cdca9562c7685e9a0eb77b51584d0cc458c44e0 (diff)
downloadShaarli-676571dab927b0fb9b3746c36f0d7540e8dba2b5.tar.gz
Shaarli-676571dab927b0fb9b3746c36f0d7540e8dba2b5.tar.zst
Shaarli-676571dab927b0fb9b3746c36f0d7540e8dba2b5.zip
Workaround for hoster (ionos)
The hoster writes the environment variable with bearer token to REDIRECT_HTTP_AUTHORIZATION and needs to provide RewriteBase / to .htaccess
Diffstat (limited to 'application/api')
-rw-r--r--application/api/ApiMiddleware.php8
1 files changed, 6 insertions, 2 deletions
diff --git a/application/api/ApiMiddleware.php b/application/api/ApiMiddleware.php
index 09ce6445..da730e0c 100644
--- a/application/api/ApiMiddleware.php
+++ b/application/api/ApiMiddleware.php
@@ -107,7 +107,7 @@ class ApiMiddleware
107 */ 107 */
108 protected function checkToken($request) 108 protected function checkToken($request)
109 { 109 {
110 if (! $request->hasHeader('Authorization')) { 110 if (! $request->hasHeader('Authorization') && !isset($_SERVER['REDIRECT_HTTP_AUTHORIZATION'])) {
111 throw new ApiAuthorizationException('JWT token not provided'); 111 throw new ApiAuthorizationException('JWT token not provided');
112 } 112 }
113 113
@@ -115,7 +115,11 @@ class ApiMiddleware
115 throw new ApiAuthorizationException('Token secret must be set in Shaarli\'s administration'); 115 throw new ApiAuthorizationException('Token secret must be set in Shaarli\'s administration');
116 } 116 }
117 117
118 $authorization = $request->getHeaderLine('Authorization'); 118 if (isset($_SERVER['REDIRECT_HTTP_AUTHORIZATION'])) {
119 $authorization = $_SERVER['REDIRECT_HTTP_AUTHORIZATION'];
120 } else {
121 $authorization = $request->getHeaderLine('Authorization');
122 }
119 123
120 if (! preg_match('/^Bearer (.*)/i', $authorization, $matches)) { 124 if (! preg_match('/^Bearer (.*)/i', $authorization, $matches)) {
121 throw new ApiAuthorizationException('Invalid JWT header'); 125 throw new ApiAuthorizationException('Invalid JWT header');