diff --git a/src/Composer/IO/BaseIO.php b/src/Composer/IO/BaseIO.php index cb2e99def..d9dbc2d6f 100644 --- a/src/Composer/IO/BaseIO.php +++ b/src/Composer/IO/BaseIO.php @@ -116,6 +116,7 @@ abstract class BaseIO implements IOInterface, LoggerInterface $gitlabOauth = $config->get('gitlab-oauth') ?: array(); $gitlabToken = $config->get('gitlab-token') ?: array(); $httpBasic = $config->get('http-basic') ?: array(); + $bearerToken = $config->get('bearer') ?: array(); // reload oauth tokens from config if available @@ -143,6 +144,10 @@ abstract class BaseIO implements IOInterface, LoggerInterface $this->checkAndSetAuthentication($domain, $cred['username'], $cred['password']); } + foreach ($bearerToken as $domain => $token) { + $this->checkAndSetAuthentication($domain, $token, 'bearer'); + } + // setup process timeout ProcessExecutor::setTimeout((int) $config->get('process-timeout')); } diff --git a/src/Composer/Util/RemoteFilesystem.php b/src/Composer/Util/RemoteFilesystem.php index 4885b7530..4fc6e8ed9 100644 --- a/src/Composer/Util/RemoteFilesystem.php +++ b/src/Composer/Util/RemoteFilesystem.php @@ -835,6 +835,8 @@ class RemoteFilesystem $headers[] = 'Authorization: Bearer ' . $auth['password']; $authenticationDisplayMessage = 'Using Bitbucket OAuth token authentication'; } + } elseif ($auth['password'] === 'bearer' ) { + $headers[] = 'Authorization: Bearer '.$auth['username']; } else { $authStr = base64_encode($auth['username'] . ':' . $auth['password']); $headers[] = 'Authorization: Basic '.$authStr;