PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 1.2.20
Booking for Appointments and Events Calendar – Amelia v1.2.20
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 3 years ago BasicAuth.php 3 years ago Bearer.php 3 years ago Chain.php 3 years ago Matching.php 3 years ago QueryParam.php 3 years ago RequestConditional.php 3 years ago Wsse.php 3 years ago
Wsse.php
59 lines
1 <?php
2
3 namespace AmeliaHttp\Message\Authentication;
4
5 use AmeliaHttp\Message\Authentication;
6 use AmeliaPsr\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