mirror of
https://we.phorge.it/source/phorge.git
synced 2025-02-21 03:08:40 +01:00
Don't throw when user tries to use an empty password via HTTP auth
Summary: Fixes T4064. See discussion there. Test Plan: Tried `git clone http://...` with empty password, got 403. Retried with actual password, got a clone. Reviewers: jamesr, btrahan Reviewed By: btrahan CC: aran Maniphest Tasks: T4064 Differential Revision: https://secure.phabricator.com/D7508
This commit is contained in:
parent
e4569e7e7e
commit
ce48375951
1 changed files with 14 additions and 0 deletions
|
@ -8,6 +8,8 @@ abstract class DiffusionController extends PhabricatorController {
|
|||
$request = $this->getRequest();
|
||||
$uri = $request->getRequestURI();
|
||||
|
||||
$user_agent = idx($_SERVER, 'HTTP_USER_AGENT');
|
||||
|
||||
// Check if this is a VCS request, e.g. from "git clone", "hg clone", or
|
||||
// "svn checkout". If it is, we jump off into repository serving code to
|
||||
// process the request.
|
||||
|
@ -27,6 +29,8 @@ abstract class DiffusionController extends PhabricatorController {
|
|||
//
|
||||
// ...to get a human-readable error.
|
||||
$vcs = $request->getExists('__vcs__');
|
||||
} else if (strncmp($user_agent, "git/", 4) === 0) {
|
||||
$vcs = PhabricatorRepositoryType::REPOSITORY_TYPE_GIT;
|
||||
} else if ($request->getExists('service')) {
|
||||
$service = $request->getStr('service');
|
||||
// We get this initially for `info/refs`.
|
||||
|
@ -541,6 +545,16 @@ abstract class DiffusionController extends PhabricatorController {
|
|||
return null;
|
||||
}
|
||||
|
||||
if (!strlen($username)) {
|
||||
// No username.
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!strlen($password->openEnvelope())) {
|
||||
// No password.
|
||||
return null;
|
||||
}
|
||||
|
||||
$user = id(new PhabricatorPeopleQuery())
|
||||
->setViewer(PhabricatorUser::getOmnipotentUser())
|
||||
->withUsernames(array($username))
|
||||
|
|
Loading…
Add table
Reference in a new issue