PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 2.4.4
Booking for Appointments and Events Calendar – Amelia v2.4.4
2.4.4 2.4.3 2.4.2 2.4.1 2.4 trunk 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.28 1.2.29 1.2.3 1.2.30 1.2.31 1.2.32 1.2.33 1.2.34 1.2.35 1.2.36 1.2.37 1.2.38 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.3
ameliabooking / vendor / php-http / message / src / Authentication / Wsse.php
ameliabooking / vendor / php-http / message / src / Authentication Last commit date
AutoBasicAuth.php 6 months ago BasicAuth.php 6 months ago Bearer.php 6 months ago Chain.php 6 months ago Matching.php 6 months ago QueryParam.php 6 months ago RequestConditional.php 6 months ago Wsse.php 6 months ago
Wsse.php
59 lines
1 <?php
2
3 namespace AmeliaHttp\Message\Authentication;
4
5 use AmeliaHttp\Message\Authentication;
6 use AmeliaVendor\Psr\Http\Message\RequestInterface;
7
8 /**
9 * Authenticate a PSR-7 Request using WSSE.
10 *
11 * @author Márk Sági-Kazár <mark.sagikazar@gmail.com>
12 */
13 final class Wsse implements Authentication
14 {
15 /**
16 * @var string
17 */
18 private $username;
19
20 /**
21 * @var string
22 */
23 private $password;
24
25 /**
26 * @param string $username
27 * @param string $password
28 */
29 public function __construct($username, $password)
30 {
31 $this->username = $username;
32 $this->password = $password;
33 }
34
35 /**
36 * {@inheritdoc}
37 */
38 public function authenticate(RequestInterface $request)
39 {
40 // TODO: generate better nonce?
41 $nonce = substr(md5(uniqid(uniqid().'_', true)), 0, 16);
42 $created = date('c');
43 $digest = base64_encode(sha1(base64_decode($nonce).$created.$this->password, true));
44
45 $wsse = sprintf(
46 'UsernameToken Username="%s", PasswordDigest="%s", Nonce="%s", Created="%s"',
47 $this->username,
48 $digest,
49 $nonce,
50 $created
51 );
52
53 return $request
54 ->withHeader('Authorization', 'WSSE profile="UsernameToken"')
55 ->withHeader('X-WSSE', $wsse)
56 ;
57 }
58 }
59