Commit e5c1e85e authored by jimmy's avatar jimmy Committed by Commit Bot

Add ntlm_enabled parameter to SmbProviderClient::Mount

Adds bool parameter for enabling/disabling NTLM on Mount.

Bug: chromium:888096
Change-Id: Ie2f380da0965472b663b8997d21de1c727edb718
Reviewed-on: https://chromium-review.googlesource.com/c/1259286Reviewed-by: default avatarZentaro Kavanagh <zentaro@chromium.org>
Commit-Queue: jimmy gong <jimmyxgong@chromium.org>
Cr-Commit-Position: refs/heads/master@{#598882}
parent 5c236080
...@@ -196,7 +196,7 @@ void SmbService::CallMount(const file_system_provider::MountOptions& options, ...@@ -196,7 +196,7 @@ void SmbService::CallMount(const file_system_provider::MountOptions& options,
: base::FilePath(share_finder_->GetResolvedUrl(parsed_url)); : base::FilePath(share_finder_->GetResolvedUrl(parsed_url));
GetSmbProviderClient()->Mount( GetSmbProviderClient()->Mount(
mount_path, workgroup, username, mount_path, IsNTLMAuthenticationEnabled(), workgroup, username,
temp_file_manager_->WritePasswordToFile(password), temp_file_manager_->WritePasswordToFile(password),
base::BindOnce(&SmbService::OnMountResponse, AsWeakPtr(), base::BindOnce(&SmbService::OnMountResponse, AsWeakPtr(),
base::Passed(&callback), options, share_path, base::Passed(&callback), options, share_path,
......
...@@ -41,6 +41,7 @@ void FakeSmbProviderClient::AddNetBiosPacketParsingForTesting( ...@@ -41,6 +41,7 @@ void FakeSmbProviderClient::AddNetBiosPacketParsingForTesting(
void FakeSmbProviderClient::Init(dbus::Bus* bus) {} void FakeSmbProviderClient::Init(dbus::Bus* bus) {}
void FakeSmbProviderClient::Mount(const base::FilePath& share_path, void FakeSmbProviderClient::Mount(const base::FilePath& share_path,
bool ntlm_enabled,
const std::string& workgroup, const std::string& workgroup,
const std::string& username, const std::string& username,
base::ScopedFD password_fd, base::ScopedFD password_fd,
......
...@@ -29,6 +29,7 @@ class CHROMEOS_EXPORT FakeSmbProviderClient : public SmbProviderClient { ...@@ -29,6 +29,7 @@ class CHROMEOS_EXPORT FakeSmbProviderClient : public SmbProviderClient {
// SmbProviderClient override. // SmbProviderClient override.
void Mount(const base::FilePath& share_path, void Mount(const base::FilePath& share_path,
bool ntlm_enabled,
const std::string& workgroup, const std::string& workgroup,
const std::string& username, const std::string& username,
base::ScopedFD password_fd, base::ScopedFD password_fd,
......
...@@ -56,6 +56,14 @@ bool ParseDeleteList(const base::ScopedFD& fd, ...@@ -56,6 +56,14 @@ bool ParseDeleteList(const base::ScopedFD& fd,
delete_list->ParseFromArray(buffer.data(), buffer.size()); delete_list->ParseFromArray(buffer.data(), buffer.size());
} }
std::unique_ptr<smbprovider::MountConfigProto> CreateMountConfigProto(
bool enable_ntlm) {
auto mount_config = std::make_unique<smbprovider::MountConfigProto>();
mount_config->set_enable_ntlm(enable_ntlm);
return mount_config;
}
class SmbProviderClientImpl : public SmbProviderClient { class SmbProviderClientImpl : public SmbProviderClient {
public: public:
SmbProviderClientImpl() = default; SmbProviderClientImpl() = default;
...@@ -63,6 +71,7 @@ class SmbProviderClientImpl : public SmbProviderClient { ...@@ -63,6 +71,7 @@ class SmbProviderClientImpl : public SmbProviderClient {
~SmbProviderClientImpl() override {} ~SmbProviderClientImpl() override {}
void Mount(const base::FilePath& share_path, void Mount(const base::FilePath& share_path,
bool ntlm_enabled,
const std::string& workgroup, const std::string& workgroup,
const std::string& username, const std::string& username,
base::ScopedFD password_fd, base::ScopedFD password_fd,
...@@ -72,6 +81,10 @@ class SmbProviderClientImpl : public SmbProviderClient { ...@@ -72,6 +81,10 @@ class SmbProviderClientImpl : public SmbProviderClient {
options.set_workgroup(workgroup); options.set_workgroup(workgroup);
options.set_username(username); options.set_username(username);
std::unique_ptr<smbprovider::MountConfigProto> config =
CreateMountConfigProto(ntlm_enabled);
options.set_allocated_mount_config(config.release());
dbus::MethodCall method_call(smbprovider::kSmbProviderInterface, dbus::MethodCall method_call(smbprovider::kSmbProviderInterface,
smbprovider::kMountMethod); smbprovider::kMountMethod);
dbus::MessageWriter writer(&method_call); dbus::MessageWriter writer(&method_call);
......
...@@ -62,6 +62,7 @@ class CHROMEOS_EXPORT SmbProviderClient ...@@ -62,6 +62,7 @@ class CHROMEOS_EXPORT SmbProviderClient
// credentials to access the mount. |callback| is called after getting (or // credentials to access the mount. |callback| is called after getting (or
// failing to get) D-BUS response. // failing to get) D-BUS response.
virtual void Mount(const base::FilePath& share_path, virtual void Mount(const base::FilePath& share_path,
bool ntlm_enabled,
const std::string& workgroup, const std::string& workgroup,
const std::string& username, const std::string& username,
base::ScopedFD password_fd, base::ScopedFD password_fd,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment