1
0
Fork 0

Merge pull request #4971 from e-moe/bugfix/4936-check-auth-overwrite

fix #4936: warn user about auth overwriting
pull/4977/head
Jordi Boggiano 2016-02-29 13:57:07 +00:00
commit fff71e5dde
1 changed files with 23 additions and 3 deletions

View File

@ -55,6 +55,26 @@ abstract class BaseIO implements IOInterface
$this->authentications[$repositoryName] = array('username' => $username, 'password' => $password);
}
/**
* Check for overwrite and set the authentication information for the repository.
*
* @param string $repositoryName The unique name of repository
* @param string $username The username
* @param string $password The password
*/
protected function checkAndSetAuthentication($repositoryName, $username, $password = null)
{
if ($this->hasAuthentication($repositoryName)) {
$this->writeError(
sprintf(
"<warning>Warning: You should avoid overwriting already defined auth settings for %s.</warning>",
$repositoryName
)
);
}
$this->setAuthentication($repositoryName, $username, $password);
}
/**
* {@inheritDoc}
*/
@ -69,16 +89,16 @@ abstract class BaseIO implements IOInterface
if (!preg_match('{^[a-z0-9]+$}', $token)) {
throw new \UnexpectedValueException('Your github oauth token for '.$domain.' contains invalid characters: "'.$token.'"');
}
$this->setAuthentication($domain, $token, 'x-oauth-basic');
$this->checkAndSetAuthentication($domain, $token, 'x-oauth-basic');
}
foreach ($gitlabOauth as $domain => $token) {
$this->setAuthentication($domain, $token, 'oauth2');
$this->checkAndSetAuthentication($domain, $token, 'oauth2');
}
// reload http basic credentials from config if available
foreach ($httpBasic as $domain => $cred) {
$this->setAuthentication($domain, $cred['username'], $cred['password']);
$this->checkAndSetAuthentication($domain, $cred['username'], $cred['password']);
}
// setup process timeout