src/Controller/DefaultController.php line 29

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Alancting\Microsoft\JWT\AzureAd\AzureAdConfiguration;
  4. use Alancting\Microsoft\JWT\AzureAd\AzureAdIdTokenJWT;
  5. use Firebase\JWT\JWT;
  6. use Firebase\JWT\Key;
  7. use Google\Service\CloudIot\X509CertificateDetails;
  8. use PhpOffice\PhpSpreadsheet\Reader\Xls\MD5;
  9. use Pimcore\Controller\FrontendController;
  10. use Pimcore\Db;
  11. use Pimcore\Log\ApplicationLogger;
  12. use Pimcore\Mail;
  13. use Pimcore\Model\Asset;
  14. use Pimcore\Model\DataObject;
  15. use Pimcore\Model\DataObject\Account;
  16. use Pimcore\Model\Document;
  17. use Pimcore\Model\Document\Email;
  18. use Pimcore\Model\Element\Tag;
  19. use Symfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory\X509Factory;
  20. use Symfony\Component\HttpFoundation\Request;
  21. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
  22. use Symfony\Component\HttpKernel\EventListener\ValidateRequestListener;
  23. use Symfony\Component\Mime\Address;
  24. use Symfony\Component\Routing\Annotation\Route;
  25. use Symfony\Component\Security\Http\Authenticator\X509Authenticator;
  26. class DefaultController extends FrontendController
  27. {
  28.     /**
  29.      * @Template
  30.      * @param Request $request
  31.      * @return array
  32.      */
  33.     public function defaultAction(Request $request)
  34.     {
  35.         /*
  36.         // 生成封面
  37.         $config = Asset\Video\Thumbnail\Config::getPreviewConfig();
  38.         $asset = Asset::getById(3);
  39.         $thumbnail = $asset->getThumbnail($config, ['mp4']);
  40.         */
  41.         $template $request->get('template');
  42.         if(empty($template)) $template 'default/default.html.twig';
  43.         $path $request->getPathInfo();
  44.         $dom Document::getByPath($path);
  45.         $params['version'] = 2022021701;
  46.         if($dom) {
  47.             $params['cssfile'] = $dom->getProperty('cssfile');
  48.             $params['jsfile'] =  $dom->getProperty('jsfile');
  49.             $params['title'] = $dom->getObjectVar('title');
  50.             $params['description'] = $dom->getObjectVar('description');
  51.             $params['metaData'] = $dom->getObjectVar('metaData');
  52.         }
  53.         return $this->render($template$params);
  54.     }
  55.     /**
  56.      * @Route("/gctest")
  57.      * @return
  58.      */
  59.     public function testAction() {
  60.         $email 'joel.t.anderson@medtronic.com';
  61.         echo substr($email0stripos($email'@'));
  62.         return $this->json('');
  63.         $access_token 'eyJ0eXAiOiJKV1QiLCJub25jZSI6ImJ5ZG81TmtXV3YxTzlKVXZiRGZyb056OW5ONGlqSVdTZ3FscENWXzJtQkUiLCJhbGciOiJSUzI1NiIsIng1dCI6ImpTMVhvMU9XRGpfNTJ2YndHTmd2UU8yVnpNYyIsImtpZCI6ImpTMVhvMU9XRGpfNTJ2YndHTmd2UU8yVnpNYyJ9.eyJhdWQiOiIwMDAwMDAwMy0wMDAwLTAwMDAtYzAwMC0wMDAwMDAwMDAwMDAiLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC8wYTI5ZDI3NC0xMzY3LTRhOGYtOTljNS05MGMzZGM3ZDQwNDMvIiwiaWF0IjoxNjUyNzcxODUzLCJuYmYiOjE2NTI3NzE4NTMsImV4cCI6MTY1Mjc3NzA2MCwiYWNjdCI6MCwiYWNyIjoiMSIsImFjcnMiOlsidXJuOnVzZXI6cmVnaXN0ZXJzZWN1cml0eWluZm8iXSwiYWlvIjoiQVZRQXEvOFRBQUFBOVh6cCtBY0hPdkpWajZtcDVEWkJhbGkya2ZjcVh5TEVoYjhTU211ZlJuMC9UM3VCRURPeTE4QmtoL0pveWcxOWxzdHZEcFUvVjZ4SGR0VWNoQTY1Ympjdm8rM0NlWlFWWmxTTDlnQ3VYQ1k9IiwiYW1yIjpbInB3ZCIsIm1mYSJdLCJhcHBfZGlzcGxheW5hbWUiOiJNRFRfIEdDQVJQbGF0Zm9ybVN0b3JhZ2VFbmhhbmNlbWVudCIsImFwcGlkIjoiNWZmOTUzY2EtM2U0ZC00MTkyLWFkMGYtMzY3NTVmMTY3YjBkIiwiYXBwaWRhY3IiOiIxIiwiZmFtaWx5X25hbWUiOiJMdSIsImdpdmVuX25hbWUiOiJZYWp1biIsImlkdHlwIjoidXNlciIsImlwYWRkciI6IjEwMS4yMjQuMTE2LjEzNSIsIm5hbWUiOiJMdSwgUGh5bG9ueSIsIm9pZCI6IjExYjA3NTkzLTBkM2QtNDBlNC1iODRmLTE1ZWRiZjFlZWFmOSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0xMDg5NDkxOTM1LTEwMzU5MDUxMzEtMzQ2NDgxMjgzNC01MDA2MzgiLCJwbGF0ZiI6IjMiLCJwdWlkIjoiMTAwMzIwMDBCODc0RUM5RCIsInJoIjoiMC5BWFVBZE5JcENtY1RqMHFaeFpERDNIMUFRd01BQUFBQUFBQUF3QUFBQUFBQUFBQjFBQmMuIiwic2NwIjoiVXNlci5SZWFkLkFsbCBwcm9maWxlIG9wZW5pZCBlbWFpbCIsInN1YiI6ImpTWFd5ZnN6U2ZRcExoaG9PYS1Mc1c1YS1ORzZxdkJnTmd5Q2M5RkNQQmMiLCJ0ZW5hbnRfcmVnaW9uX3Njb3BlIjoiTkEiLCJ0aWQiOiIwYTI5ZDI3NC0xMzY3LTRhOGYtOTljNS05MGMzZGM3ZDQwNDMiLCJ1bmlxdWVfbmFtZSI6Imx1eTU2QHN0Z21lZHRyb25pYy5jb20iLCJ1cG4iOiJsdXk1NkBzdGdtZWR0cm9uaWMuY29tIiwidXRpIjoibE1qazVnOW54ay1JMFU4X0NxVWhBQSIsInZlciI6IjEuMCIsIndpZHMiOlsiYjc5ZmJmNGQtM2VmOS00Njg5LTgxNDMtNzZiMTk0ZTg1NTA5Il0sInhtc19zdCI6eyJzdWIiOiJPR0dURlZMYmp5eG5sRWktcDl5WkFPWnBKdzhKQV85RnNKTjRzVzF5eGk4In0sInhtc190Y2R0IjoxNDY3ODI1MjA4fQ.GXiYg4ZCxtcWl15SkmYqX0riag-cIcAFFTM03MSsAW0lMO2KHBW-omiK2UZLuhduPcoiZbIs4FVLb6kfQGVGVdno9NDfP_QP_UBaAj18NX3rKM9zxaNdShV6_dXgo0RiEcZUvYaf-NXUt0R_dUxHgmelqcaxT8T7xAcSmeZmpzvMoGZSGD23qmpLZ0KB9wpJkrTSN6iofkG5ZVXcd0vbbftpbNZCYA1QWJ-KhGwMvUqCPjqza6jM_7eKnVkpj6ll5yjeG3zkhFjETvwHbNNrcfDh9X6fpQGT-PAt5Wtw9bxVbxxSXlJWsJCwH-9FUhAGwbeMbX7S_IhpopuCaDNeyw';
  64.         //echo JWT::urlsafeB64Decode($str);
  65.         $arr explode('.'$str);
  66.         $jsonKey JWT::urlsafeB64Decode($arr[0]);
  67.         $jsonData JWT::urlsafeB64Decode($arr[1]);
  68.         $userInfo json_decode($jsonDatatrue);
  69.         //print_r($jsonKey);
  70.         //print_r($userInfo);
  71.         $config_options = [
  72.             'tenant' => '0a29d274-1367-4a8f-99c5-90c3dc7d4043',
  73.             'tenant_id' => '0a29d274-1367-4a8f-99c5-90c3dc7d4043'// 租户id
  74.             'client_id' => '5ff953ca-3e4d-4192-ad0f-36755f167b0d'// appid
  75.             'idTokenCheck' => true
  76.         ];
  77.         $config = new AzureAdConfiguration($config_options);
  78.         $id_token 'eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6Inlscnl6YjJ1V3hoZ2NzcEJLSE1teTd6QS0wdyJ9.eyJhdWQiOiI1ZmY5NTNjYS0zZTRkLTQxOTItYWQwZi0zNjc1NWYxNjdiMGQiLCJpc3MiOiJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vMGEyOWQyNzQtMTM2Ny00YThmLTk5YzUtOTBjM2RjN2Q0MDQzL3YyLjAiLCJpYXQiOjE2NTI4NzU1NjgsIm5iZiI6MTY1Mjg3NTU2OCwiZXhwIjoxNjUyODc5NDY4LCJhaW8iOiJBVlFBcS84VEFBQUFVcjRLTDRzTU5ycnBYbU5SOTBFLzhYd3FQbDBDT29CQ3NjbUtxdTVEb1RSREZ1M1JSbnVaVWFUYjVvSnZrVlRrWnhuUFBlSGRqKzFjZ1RNZzUvNnYyLzluYndIQnA3L2FrMXVjbmdIMzBLcz0iLCJlbWFpbCI6Imx1eTU2QHN0Z2V4Y25nLm1lZHRyb25pYy5jb20iLCJyaCI6IjAuQVhVQWROSXBDbWNUajBxWnhaREQzSDFBUThwVC1WOU5QcEpCclE4MmRWOFdldzExQUJjLiIsInN1YiI6Ik9HR1RGVkxianl4bmxFaS1wOXlaQU9acEp3OEpBXzlGc0pONHNXMXl4aTgiLCJ0aWQiOiIwYTI5ZDI3NC0xMzY3LTRhOGYtOTljNS05MGMzZGM3ZDQwNDMiLCJ1dGkiOiJNRmNIejhReGhFLWk4TV8zY0sxN0FBIiwidmVyIjoiMi4wIn0.Zq_KDnFg-hl6e_Zaews9SR8hSuyD40fX5jGKk47s74W8hp0m4W8YburOrkmb2Sajmc-lBGzEm3FAYjni8URWBcMX4geRi1k-N2W8_9OUgqmBTC1sqWJeQBfM-vfp6beUcd7pa23UN93xzLizWckILpqlEjC1TZoLaQe4MmbJLO32so_fqje9N-NfWQevXdRW2GOZKSgmEsvP4tC8JYWzjohNjaHEYSmWsZSQQAEkLwqgKRmb_2Ce7NMLMwgGUW7DxEOza3pBU7KDU8WfDsvzBQROtqdWBfh7lXqnrmDxLdAl8SI281l03PNRnGcXAuiIzsWgKl1kGRkHHlfgfx7gkw';
  79.         $access_token 'eyJ0eXAiOiJKV1QiLCJub25jZSI6IjNRMUQ0cTU5NFRxSm5McWhqZHZ5SjJycUwyUWpZM2h0SWZMdXpKRDdTWUUiLCJhbGciOiJSUzI1NiIsIng1dCI6ImpTMVhvMU9XRGpfNTJ2YndHTmd2UU8yVnpNYyIsImtpZCI6ImpTMVhvMU9XRGpfNTJ2YndHTmd2UU8yVnpNYyJ9.eyJhdWQiOiIwMDAwMDAwMy0wMDAwLTAwMDAtYzAwMC0wMDAwMDAwMDAwMDAiLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC8wYTI5ZDI3NC0xMzY3LTRhOGYtOTljNS05MGMzZGM3ZDQwNDMvIiwiaWF0IjoxNjUyODc1Nzg1LCJuYmYiOjE2NTI4NzU3ODUsImV4cCI6MTY1Mjg4MDAzNywiYWNjdCI6MCwiYWNyIjoiMSIsImFjcnMiOlsidXJuOnVzZXI6cmVnaXN0ZXJzZWN1cml0eWluZm8iXSwiYWlvIjoiQVZRQXEvOFRBQUFBZlZLUDJPQk9YUVBZQkZiNWIvbnZiVzN3eUJoeW5GYjdwUldoNm0yRUFFdmV1MlMzVzFBQk5vbm9INGkwb2hnL25VRFp1Z25MT0lwNzhSWjI5SUtuZm9XQTJlTGJpckJtQjEwQkxucmt3cWc9IiwiYW1yIjpbInB3ZCIsIm1mYSJdLCJhcHBfZGlzcGxheW5hbWUiOiJNRFRfIEdDQVJQbGF0Zm9ybVN0b3JhZ2VFbmhhbmNlbWVudCIsImFwcGlkIjoiNWZmOTUzY2EtM2U0ZC00MTkyLWFkMGYtMzY3NTVmMTY3YjBkIiwiYXBwaWRhY3IiOiIxIiwiZmFtaWx5X25hbWUiOiJMdSIsImdpdmVuX25hbWUiOiJZYWp1biIsImlkdHlwIjoidXNlciIsImlwYWRkciI6IjExNi4yMzAuMTc4LjI1MCIsIm5hbWUiOiJMdSwgUGh5bG9ueSIsIm9pZCI6IjExYjA3NTkzLTBkM2QtNDBlNC1iODRmLTE1ZWRiZjFlZWFmOSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0xMDg5NDkxOTM1LTEwMzU5MDUxMzEtMzQ2NDgxMjgzNC01MDA2MzgiLCJwbGF0ZiI6IjMiLCJwdWlkIjoiMTAwMzIwMDBCODc0RUM5RCIsInJoIjoiMC5BWFVBZE5JcENtY1RqMHFaeFpERDNIMUFRd01BQUFBQUFBQUF3QUFBQUFBQUFBQjFBQmMuIiwic2NwIjoiVXNlci5SZWFkLkFsbCBwcm9maWxlIG9wZW5pZCBlbWFpbCIsInN1YiI6ImpTWFd5ZnN6U2ZRcExoaG9PYS1Mc1c1YS1ORzZxdkJnTmd5Q2M5RkNQQmMiLCJ0ZW5hbnRfcmVnaW9uX3Njb3BlIjoiTkEiLCJ0aWQiOiIwYTI5ZDI3NC0xMzY3LTRhOGYtOTljNS05MGMzZGM3ZDQwNDMiLCJ1bmlxdWVfbmFtZSI6Imx1eTU2QHN0Z21lZHRyb25pYy5jb20iLCJ1cG4iOiJsdXk1NkBzdGdtZWR0cm9uaWMuY29tIiwidXRpIjoicXMwcTRvRWh1RWEwTHF4Y19CdDlBQSIsInZlciI6IjEuMCIsIndpZHMiOlsiYjc5ZmJmNGQtM2VmOS00Njg5LTgxNDMtNzZiMTk0ZTg1NTA5Il0sInhtc19zdCI6eyJzdWIiOiJPR0dURlZMYmp5eG5sRWktcDl5WkFPWnBKdzhKQV85RnNKTjRzVzF5eGk4In0sInhtc190Y2R0IjoxNDY3ODI1MjA4fQ.otVtV9wvgp03wEz0_tEtznbh29cGab2w-0x92CsgunLR1ZbYtSEqmZMxpL3rRncgwkc2OXMklbVpTw0LElK0CVyk8BojgmR0okzUZGF9x3453h-OfITy8kmK2lvkPawWz06b-rWuEyxrEd59R2rQovlNt14afmKhqkMySKl43kdRFmBLEzPFC7b0dMkB4F3DIvtDDqdtdki-AIEh43mmn5TRLVQDelfdbWRo4hRq9LdWNW0xGr9844Q0NM5YRtfZHRChDpBswobs64OZX10VibZckWcEw7iAn_571kANNnTLQmEvYQyFaDDNNJxPSlPSQbOn5XvVMSbXYXrk-aGxXA';
  80.         $id_token_jwt = new AzureAdIdTokenJWT($config$id_token);
  81.         // Getting payload from id token
  82.         print_r($id_token_jwt->getPayload());
  83.         // echo "\n";
  84.         // Getting value from payload by attribute of id token
  85.         print_r($id_token_jwt->get('email'));
  86.         echo "\n";
  87.         echo ($id_token_jwt->isExpired()) ? 'Id token is expired' 'Id token is valid';
  88.         echo ($id_token->isExpired()) ? 'Access token is expired' 'Access token is valid';
  89.         return $this->json('');
  90.     }
  91. }