Files
tubestation/netwerk/protocol/http/nsHttpBasicAuth.cpp
Patrick McManus c07974e685 Bug 1238290 - fix bad necko deps on unified_sources r=valentin.gosu
---
 netwerk/base/ARefBase.h                            |  2 ++
 netwerk/base/CaptivePortalService.cpp              |  1 +
 netwerk/base/CaptivePortalService.h                |  1 +
 netwerk/base/EventTokenBucket.cpp                  |  4 +++-
 netwerk/base/LoadContextInfo.cpp                   |  3 +++
 netwerk/base/LoadInfo.cpp                          |  3 +++
 netwerk/base/MemoryDownloader.cpp                  |  1 +
 netwerk/base/Predictor.cpp                         |  1 +
 netwerk/base/RedirectChannelRegistrar.h            |  1 +
 netwerk/base/nsBaseChannel.cpp                     |  1 +
 netwerk/base/nsChannelClassifier.cpp               |  1 +
 netwerk/base/nsDirectoryIndexStream.cpp            |  3 ++-
 netwerk/base/nsDownloader.cpp                      |  1 +
 netwerk/base/nsIOService.cpp                       |  1 +
 netwerk/base/nsIncrementalDownload.cpp             |  3 +++
 netwerk/base/nsNetUtil.cpp                         |  4 ++++
 netwerk/base/nsNetUtil.h                           |  1 +
 netwerk/base/nsProtocolProxyService.cpp            |  1 +
 netwerk/base/nsSecCheckWrapChannel.cpp             |  2 ++
 netwerk/base/nsUDPSocket.cpp                       |  4 +++-
 netwerk/cache/nsDiskCacheBinding.cpp               |  2 +-
 netwerk/cache/nsDiskCacheDeviceSQL.cpp             |  2 ++
 netwerk/cache/nsMemoryCacheDevice.cpp              |  2 +-
 netwerk/cache2/CacheFileUtils.cpp                  |  2 ++
 netwerk/cache2/CacheStorageService.h               |  1 +
 netwerk/ipc/NeckoParent.cpp                        |  1 +
 netwerk/ipc/RemoteOpenFileChild.cpp                |  1 +
 netwerk/protocol/about/nsAboutBloat.cpp            |  1 +
 netwerk/protocol/about/nsAboutCacheEntry.cpp       |  1 +
 netwerk/protocol/about/nsAboutProtocolHandler.cpp  |  1 +
 netwerk/protocol/data/DataChannelParent.cpp        |  1 +
 netwerk/protocol/file/nsFileProtocolHandler.cpp    |  1 +
 netwerk/protocol/ftp/FTPChannelParent.cpp          |  2 ++
 netwerk/protocol/ftp/FTPChannelParent.h            |  1 +
 netwerk/protocol/ftp/nsFtpConnectionThread.cpp     |  1 +
 netwerk/protocol/ftp/nsFtpProtocolHandler.h        |  1 +
 netwerk/protocol/http/Http2Compression.cpp         |  1 +
 netwerk/protocol/http/Http2Session.cpp             |  1 +
 netwerk/protocol/http/Http2Stream.h                |  2 ++
 netwerk/protocol/http/HttpBaseChannel.cpp          |  4 ++++
 netwerk/protocol/http/HttpBaseChannel.h            |  1 +
 netwerk/protocol/http/HttpChannelChild.cpp         | 25 ++--------------------
 netwerk/protocol/http/HttpChannelChild.h           | 24 +++++++++++++++++++++
 netwerk/protocol/http/HttpChannelParent.cpp        |  1 +
 netwerk/protocol/http/HttpChannelParent.h          |  1 +
 .../protocol/http/HttpChannelParentListener.cpp    |  1 +
 netwerk/protocol/http/HttpChannelParentListener.h  |  1 +
 netwerk/protocol/http/InterceptedChannel.cpp       |  1 +
 netwerk/protocol/http/NullHttpChannel.cpp          |  1 +
 netwerk/protocol/http/NullHttpTransaction.cpp      |  1 +
 netwerk/protocol/http/PackagedAppService.cpp       | 14 ++++++++++--
 netwerk/protocol/http/PackagedAppService.h         |  4 +++-
 netwerk/protocol/http/PackagedAppVerifier.cpp      |  1 +
 netwerk/protocol/http/nsCORSListenerProxy.cpp      |  2 +-
 netwerk/protocol/http/nsHttpBasicAuth.cpp          |  1 +
 netwerk/protocol/http/nsHttpChannel.cpp            |  2 ++
 netwerk/protocol/http/nsHttpChunkedDecoder.cpp     |  1 +
 netwerk/protocol/http/nsHttpConnectionInfo.cpp     |  2 ++
 netwerk/protocol/http/nsHttpConnectionMgr.cpp      |  1 +
 netwerk/protocol/http/nsHttpDigestAuth.cpp         |  1 +
 netwerk/protocol/viewsource/nsViewSourceHandler.h  |  4 ++++
 .../protocol/websocket/BaseWebSocketChannel.cpp    |  1 +
 .../websocket/WebSocketEventListenerParent.cpp     |  1 +
 .../protocol/websocket/WebSocketEventService.cpp   |  3 +++
 netwerk/protocol/websocket/WebSocketFrame.cpp      |  2 ++
 netwerk/protocol/wyciwyg/nsWyciwygChannel.cpp      |  1 +
 .../protocol/wyciwyg/nsWyciwygProtocolHandler.cpp  |  1 +
 netwerk/streamconv/converters/mozTXTToHTMLConv.cpp |  1 +
 .../streamconv/converters/nsFTPDirListingConv.cpp  |  1 +
 .../streamconv/converters/nsHTTPCompressConv.cpp   |  2 ++
 netwerk/streamconv/converters/nsHTTPCompressConv.h |  1 +
 netwerk/streamconv/converters/nsIndexedToHTML.cpp  |  1 +
 netwerk/streamconv/converters/nsMultiMixedConv.cpp |  2 ++
 netwerk/streamconv/converters/nsTXTToHTMLConv.cpp  |  2 ++
 netwerk/streamconv/converters/nsUnknownDecoder.cpp |  2 ++
 75 files changed, 147 insertions(+), 32 deletions(-)
2016-01-08 20:20:50 -05:00

103 lines
3.4 KiB
C++

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
// HttpLog.h should generally be included first
#include "HttpLog.h"
#include "nsHttpBasicAuth.h"
#include "plbase64.h"
#include "plstr.h"
#include "nsString.h"
namespace mozilla {
namespace net {
//-----------------------------------------------------------------------------
// nsHttpBasicAuth <public>
//-----------------------------------------------------------------------------
nsHttpBasicAuth::nsHttpBasicAuth()
{
}
nsHttpBasicAuth::~nsHttpBasicAuth()
{
}
//-----------------------------------------------------------------------------
// nsHttpBasicAuth::nsISupports
//-----------------------------------------------------------------------------
NS_IMPL_ISUPPORTS(nsHttpBasicAuth, nsIHttpAuthenticator)
//-----------------------------------------------------------------------------
// nsHttpBasicAuth::nsIHttpAuthenticator
//-----------------------------------------------------------------------------
NS_IMETHODIMP
nsHttpBasicAuth::ChallengeReceived(nsIHttpAuthenticableChannel *authChannel,
const char *challenge,
bool isProxyAuth,
nsISupports **sessionState,
nsISupports **continuationState,
bool *identityInvalid)
{
// if challenged, then the username:password that was sent must
// have been wrong.
*identityInvalid = true;
return NS_OK;
}
NS_IMETHODIMP
nsHttpBasicAuth::GenerateCredentials(nsIHttpAuthenticableChannel *authChannel,
const char *challenge,
bool isProxyAuth,
const char16_t *domain,
const char16_t *user,
const char16_t *password,
nsISupports **sessionState,
nsISupports **continuationState,
uint32_t *aFlags,
char **creds)
{
LOG(("nsHttpBasicAuth::GenerateCredentials [challenge=%s]\n", challenge));
NS_ENSURE_ARG_POINTER(creds);
*aFlags = 0;
// we only know how to deal with Basic auth for http.
bool isBasicAuth = !PL_strncasecmp(challenge, "basic", 5);
NS_ENSURE_TRUE(isBasicAuth, NS_ERROR_UNEXPECTED);
// we work with ASCII around here
nsAutoCString userpass;
LossyCopyUTF16toASCII(user, userpass);
userpass.Append(':'); // always send a ':' (see bug 129565)
if (password)
LossyAppendUTF16toASCII(password, userpass);
// plbase64.h provides this worst-case output buffer size calculation.
// use calloc, since PL_Base64Encode does not null terminate.
*creds = (char *) calloc(6 + ((userpass.Length() + 2)/3)*4 + 1, 1);
if (!*creds)
return NS_ERROR_OUT_OF_MEMORY;
memcpy(*creds, "Basic ", 6);
PL_Base64Encode(userpass.get(), userpass.Length(), *creds + 6);
return NS_OK;
}
NS_IMETHODIMP
nsHttpBasicAuth::GetAuthFlags(uint32_t *flags)
{
*flags = REQUEST_BASED | REUSABLE_CREDENTIALS | REUSABLE_CHALLENGE;
return NS_OK;
}
} // namespace net
} // namespace mozilla