Commit 0f089296 authored by Antony Le Courtes's avatar Antony Le Courtes
Browse files

Possibilité d'utiliser un token wildcard avec esup signature pour utiliser les apis

parent 5be0a87b
Loading
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -127,6 +127,9 @@ return [
                    \UnicaenSignature\Utils\SignatureConstants::SIGN_EIDAS  => 'nexuSign',
                ],

                //Token wildcard de esup signature dans le cas ou vous avez activé le token api sur esup signature
                'token'   => 'XXXXXXXXXXXXXX',

                // Configuration du parafeur
                'config'      => [
                    // ESUP configuration
+3 −0
Original line number Diff line number Diff line
@@ -203,6 +203,9 @@ return [
                    \UnicaenSignature\Utils\SignatureConstants::SIGN_EIDAS  => 'nexuSign',
                ],

                //Token wildcard de esup signature dans le cas ou vous avez activé le token api sur esup signature
                'token'   => 'XXXXXXXXXXXXXX',

                // Configuration du parafeur
                'config'      => [
                    // ESUP configuration
+9 −1
Original line number Diff line number Diff line
@@ -85,6 +85,14 @@ class EsupLetterfileStrategy implements ILetterfileStrategy
        return null;
    }

    public function getToken(): ?string
    {
        if( array_key_exists('token', $this->config) ) {
            return $this->config['token'];
        }
        return null;
    }

    public function sendSignature(Signature $signature): void
    {
        $this->addSignRequestFromSignature($signature);
@@ -137,7 +145,7 @@ class EsupLetterfileStrategy implements ILetterfileStrategy
    public function getAccess(): ?CurlAccess
    {
        if ($this->curlAccess === null) {
            $this->curlAccess = new CurlAccess($this->getLoggerService(), $this->getArchiveExchange());
            $this->curlAccess = new CurlAccess($this->getLoggerService(), $this->getArchiveExchange(), $this->getToken());
        }
        return $this->curlAccess;
    }
+16 −8
Original line number Diff line number Diff line
@@ -17,14 +17,23 @@ class CurlAccess

    private ?string $archivePath;

    private array $headers = [];

    /**
     * @param LoggerService $logger
     * @param string|null $archivePath Emplacement où archiver les retours
     */
    public function __construct(LoggerService $logger, ?string $archivePath = null)
    public function __construct(LoggerService $logger, ?string $archivePath = null, ?string $token = null)
    {
        $this->logger = $logger;
        $this->archivePath = $archivePath;
        $this->headers = [
            'User-Agent: Opera/9.80 (Windows NT 6.2; Win64; x64) Presto/2.12.388 Version/12.15','Referer: http://someaddress.tld','Content-Type: multipart/form-data',
        ];
        if(!empty($token))
        {
            $this->headers[] = 'x-api-token: ' . $token;
        }
    }


@@ -50,14 +59,13 @@ class CurlAccess
    public function delete($url, array $posted):array{
        $this->logger->debug("CURL [delete] $url");


        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL,$url);
        curl_setopt($curl, CURLOPT_POST, true);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $posted);
        curl_setopt($curl, CURLOPT_USERAGENT,'Opera/9.80 (Windows NT 6.2; Win64; x64) Presto/2.12.388 Version/12.15');
        curl_setopt($curl, CURLOPT_HTTPHEADER,array(
                             'User-Agent: Opera/9.80 (Windows NT 6.2; Win64; x64) Presto/2.12.388 Version/12.15','Referer: http://someaddress.tld','Content-Type: multipart/form-data')
        );
        curl_setopt($curl, CURLOPT_HTTPHEADER,$this->headers);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // stop verifying certificate
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'DELETE');
@@ -111,9 +119,7 @@ class CurlAccess
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL,$url);
        curl_setopt($curl, CURLOPT_USERAGENT,'Opera/9.80 (Windows NT 6.2; Win64; x64) Presto/2.12.388 Version/12.15');
        curl_setopt($curl, CURLOPT_HTTPHEADER,array(
            'User-Agent: Opera/9.80 (Windows NT 6.2; Win64; x64) Presto/2.12.388 Version/12.15','Referer: http://someaddress.tld','Content-Type: multipart/form-data')
        );
        curl_setopt($curl, CURLOPT_HTTPHEADER,$this->headers);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // stop verifying certificate
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curl, CURLOPT_POST, true); // enable posting
@@ -163,11 +169,13 @@ class CurlAccess
        $return = [];
        $opt = [
            CURLOPT_URL => $url,
            CURLOPT_RETURNTRANSFER => 1
            CURLOPT_RETURNTRANSFER => 1,
            CURLOPT_HTTPHEADER => $this->headers,
        ];

        $this->logger->debug("curl_init");
        $ch = curl_init();

        $this->logger->debug("curl_opt : " . print_r($opt, true));
        curl_setopt_array($ch, $opt);