PluginProbe ʕ •ᴥ•ʔ
WP Mail SMTP by WPForms – The Most Popular SMTP and Email Log Plugin / 4.9.0
WP Mail SMTP by WPForms – The Most Popular SMTP and Email Log Plugin v4.9.0
4.9.0 0.9.6 1.0.0 1.0.1 1.0.2 1.1.0 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.3.0 1.3.1 1.3.2 1.3.3 1.4.0 1.4.1 1.4.2 1.5.0 1.5.1 1.5.2 1.6.0 1.6.2 1.7.0 1.7.1 1.8.0 1.8.1 1.9.0 2.0.0 2.0.1 2.1.1 2.2.1 2.3.1 2.4.0 2.5.0 2.5.1 2.6.0 2.7.0 2.8.0 2.9.0 3.0.1 3.0.2 3.0.3 3.1.0 3.10.0 3.11.0 3.11.1 3.2.0 3.2.1 3.3.0 3.4.0 3.5.0 3.5.1 3.5.2 3.6.1 3.7.0 3.8.0 3.8.2 3.9.0 4.0.1 4.1.0 4.1.1 4.2.0 4.3.0 4.4.0 4.5.0 4.6.0 4.7.0 4.7.1 4.8.0 trunk 0.10.0 0.10.1 0.11.1 0.11.2 0.3.1 0.3.2 0.4 0.4.1 0.4.2 0.5.0 0.5.1 0.5.2 0.6 0.7 0.8 0.8.2 0.8.3 0.8.4 0.8.5 0.8.6 0.8.7 0.9.0 0.9.1 0.9.2 0.9.3 0.9.4 0.9.5
wp-mail-smtp / vendor_prefixed / google / auth / src / CredentialSource / FileSource.php
wp-mail-smtp / vendor_prefixed / google / auth / src / CredentialSource Last commit date
AwsNativeSource.php 5 days ago FileSource.php 5 days ago UrlSource.php 5 days ago
FileSource.php
61 lines
1 <?php
2
3 /*
4 * Copyright 2023 Google Inc.
5 *
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 */
18 namespace WPMailSMTP\Vendor\Google\Auth\CredentialSource;
19
20 use WPMailSMTP\Vendor\Google\Auth\ExternalAccountCredentialSourceInterface;
21 use InvalidArgumentException;
22 use UnexpectedValueException;
23 /**
24 * Retrieve a token from a file.
25 */
26 class FileSource implements ExternalAccountCredentialSourceInterface
27 {
28 private string $file;
29 private ?string $format;
30 private ?string $subjectTokenFieldName;
31 /**
32 * @param string $file The file to read the subject token from.
33 * @param string $format The format of the token in the file. Can be null or "json".
34 * @param string $subjectTokenFieldName The name of the field containing the token in the file. This is required
35 * when format is "json".
36 */
37 public function __construct(string $file, ?string $format = null, ?string $subjectTokenFieldName = null)
38 {
39 $this->file = $file;
40 if ($format === 'json' && \is_null($subjectTokenFieldName)) {
41 throw new InvalidArgumentException('subject_token_field_name must be set when format is JSON');
42 }
43 $this->format = $format;
44 $this->subjectTokenFieldName = $subjectTokenFieldName;
45 }
46 public function fetchSubjectToken(?callable $httpHandler = null) : string
47 {
48 $contents = \file_get_contents($this->file);
49 if ($this->format === 'json') {
50 if (!($json = \json_decode((string) $contents, \true))) {
51 throw new UnexpectedValueException('Unable to decode JSON file');
52 }
53 if (!isset($json[$this->subjectTokenFieldName])) {
54 throw new UnexpectedValueException('subject_token_field_name not found in JSON file');
55 }
56 $contents = $json[$this->subjectTokenFieldName];
57 }
58 return $contents;
59 }
60 }
61