diff options
| author | Carson Fleming <cflems@cflems.net> | 2017-03-02 22:49:24 -0500 |
|---|---|---|
| committer | Carson Fleming <cflems@cflems.net> | 2017-03-02 22:49:24 -0500 |
| commit | b76e2ff898b23745d4c9aaee49eeb7d88f2896ab (patch) | |
| tree | 9b794be8db310a575d70165d9ebde0a183b61b01 /inc/mailgun/php-http/message/src/Authentication/AutoBasicAuth.php | |
| parent | bfcc9f7a7656a2db0c905b3c13114664f00f6c37 (diff) | |
| download | bulletin-b76e2ff898b23745d4c9aaee49eeb7d88f2896ab.tar.gz | |
Updated mailgun plugin
Diffstat (limited to 'inc/mailgun/php-http/message/src/Authentication/AutoBasicAuth.php')
| -rw-r--r-- | inc/mailgun/php-http/message/src/Authentication/AutoBasicAuth.php | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/inc/mailgun/php-http/message/src/Authentication/AutoBasicAuth.php b/inc/mailgun/php-http/message/src/Authentication/AutoBasicAuth.php new file mode 100644 index 0000000..7b6a429 --- /dev/null +++ b/inc/mailgun/php-http/message/src/Authentication/AutoBasicAuth.php @@ -0,0 +1,48 @@ +<?php + +namespace Http\Message\Authentication; + +use Http\Message\Authentication; +use Psr\Http\Message\RequestInterface; + +/** + * Authenticate a PSR-7 Request using Basic Auth based on credentials in the URI. + * + * @author Márk Sági-Kazár <mark.sagikazar@gmail.com> + */ +final class AutoBasicAuth implements Authentication +{ + /** + * Whether user info should be removed from the URI. + * + * @var bool + */ + private $shouldRemoveUserInfo; + + /** + * @param bool|true $shouldRremoveUserInfo + */ + public function __construct($shouldRremoveUserInfo = true) + { + $this->shouldRemoveUserInfo = (bool) $shouldRremoveUserInfo; + } + + /** + * {@inheritdoc} + */ + public function authenticate(RequestInterface $request) + { + $uri = $request->getUri(); + $userInfo = $uri->getUserInfo(); + + if (!empty($userInfo)) { + if ($this->shouldRemoveUserInfo) { + $request = $request->withUri($uri->withUserInfo('')); + } + + $request = $request->withHeader('Authorization', sprintf('Basic %s', base64_encode($userInfo))); + } + + return $request; + } +} |
