Skip to content

Commit 6d7cc9e

Browse files
fix: fixed php-jwt conflicts between v1 and v2 #442
1 parent b3adcb1 commit 6d7cc9e

1 file changed

Lines changed: 15 additions & 10 deletions

File tree

pfSense-pkg-RESTAPI/files/usr/local/pkg/RESTAPI/autoloader.inc

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,6 @@
11
<?php
22

3-
# Include third-party libraries and built-in pfSense libraries required for this package
4-
require_once 'RESTAPI/.resources/includes/firebase/php-jwt/src/JWT.php';
5-
require_once 'RESTAPI/.resources/includes/firebase/php-jwt/src/JWK.php';
6-
require_once 'RESTAPI/.resources/includes/firebase/php-jwt/src/Key.php';
7-
require_once 'RESTAPI/.resources/includes/firebase/php-jwt/src/CachedKeySet.php';
8-
require_once 'RESTAPI/.resources/includes/firebase/php-jwt/src/JWTExceptionWithPayloadInterface.php';
9-
require_once 'RESTAPI/.resources/includes/firebase/php-jwt/src/ExpiredException.php';
10-
require_once 'RESTAPI/.resources/includes/firebase/php-jwt/src/SignatureInvalidException.php';
11-
require_once 'RESTAPI/.resources/includes/firebase/php-jwt/src/BeforeValidException.php';
12-
require_once 'RESTAPI/.resources/includes/firebase/php-jwt/src/JWTExceptionWithPayloadInterface.php';
3+
# Include built-in pfSense libraries required for this package
134
require_once 'config.inc';
145
require_once 'diag_arp.inc';
156
require_once 'util.inc';
@@ -26,6 +17,20 @@ require_once 'pkg-utils.inc';
2617
require_once 'firewall_virtual_ip.inc';
2718
require_once 'includes/functions.inc.php';
2819

20+
# Check if the php-jwt dependency has already been installed. This is necessary to concurrently run v1 and v2 on the
21+
# same system since both packages install this dependency, which creates conflicts.
22+
# TODO: Look into the feasibility of making php-jwt its own pfSense package that both packages can share
23+
$jwt_path_prefix = (!is_dir("/etc/inc/firebase/php-jwt/src")) ? "RESTAPI/.resources/includes/" : "";
24+
require_once "{$jwt_path_prefix}firebase/php-jwt/src/JWT.php";
25+
require_once "{$jwt_path_prefix}firebase/php-jwt/src/JWK.php";
26+
require_once "{$jwt_path_prefix}firebase/php-jwt/src/Key.php";
27+
require_once "{$jwt_path_prefix}firebase/php-jwt/src/CachedKeySet.php";
28+
require_once "{$jwt_path_prefix}firebase/php-jwt/src/JWTExceptionWithPayloadInterface.php";
29+
require_once "{$jwt_path_prefix}firebase/php-jwt/src/ExpiredException.php";
30+
require_once "{$jwt_path_prefix}firebase/php-jwt/src/SignatureInvalidException.php";
31+
require_once "{$jwt_path_prefix}firebase/php-jwt/src/BeforeValidException.php";
32+
require_once "{$jwt_path_prefix}firebase/php-jwt/src/JWTExceptionWithPayloadInterface.php";
33+
2934
# Ensure the RESTAPI BaseTraits is imported before any other libraries
3035
require_once 'RESTAPI/Core/BaseTraits.inc';
3136

0 commit comments

Comments
 (0)