Expose binary password to MqttConnectionValidatorContext.

This commit is contained in:
Christian Kratky
2019-05-27 19:57:36 +02:00
parent ccfe67e6a6
commit 2d03c267e4
4 changed files with 15 additions and 18 deletions
@@ -1,5 +1,4 @@
using System;
using System.Text;
using System.Threading.Tasks;
using IronPython.Runtime;
using Microsoft.Extensions.Logging;
@@ -23,12 +22,6 @@ namespace MQTTnet.Server.Mqtt
{
try
{
string passwordString = null;
if (context.Password != null)
{
passwordString = Encoding.UTF8.GetString(context.Password);
}
var pythonContext = new PythonDictionary
{
{ "client_id", context.ClientId },
@@ -36,7 +29,7 @@ namespace MQTTnet.Server.Mqtt
{ "is_secure_connection", context.IsSecureConnection },
{ "username", context.Username },
{ "password", context.Password },
{ "password_string", passwordString },
{ "raw_password", context.RawPassword },
{ "result", PythonConvert.Pythonfy(context.ReturnCode) }
};
@@ -5,11 +5,17 @@ namespace MQTTnet.Server
{
public class MqttConnectionValidatorContext
{
public MqttConnectionValidatorContext(string clientId, string username, byte[] password, MqttApplicationMessage willMessage, string endpoint, bool isSecureConnection)
public MqttConnectionValidatorContext(
string clientId,
string username,
byte[] password,
MqttApplicationMessage willMessage,
string endpoint,
bool isSecureConnection)
{
ClientId = clientId;
Username = username;
Password = password;
RawPassword = password;
WillMessage = willMessage;
Endpoint = endpoint;
IsSecureConnection = isSecureConnection;
@@ -19,7 +25,9 @@ namespace MQTTnet.Server
public string Username { get; }
public byte[] Password { get; }
public string Password => Encoding.UTF8.GetString(RawPassword ?? new byte[0]);
public byte[] RawPassword { get; }
public MqttApplicationMessage WillMessage { get; }
+1 -2
View File
@@ -28,8 +28,7 @@ namespace MQTTnet.TestApp.NetCore
{
if (p.ClientId == "SpecialClient")
{
var password = Encoding.UTF8.GetString(p.Password);
if (p.Username != "USER" || password != "PASS")
if (p.Username != "USER" || p.Password != "PASS")
{
p.ReturnCode = MqttConnectReturnCode.ConnectionRefusedBadUsernameOrPassword;
}
@@ -633,9 +633,7 @@ namespace MQTTnet.TestApp.UniversalWindows
return;
}
var password = Encoding.UTF8.GetString(c.Password);
if (password != "mySecretPassword")
if (c.Password != "mySecretPassword")
{
c.ReturnCode = MqttConnectReturnCode.ConnectionRefusedBadUsernameOrPassword;
return;
@@ -719,8 +717,7 @@ namespace MQTTnet.TestApp.UniversalWindows
return;
}
var password = Encoding.UTF8.GetString(c.Password);
if (password != "mySecretPassword")
if (c.Password != "mySecretPassword")
{
c.ReturnCode = MqttConnectReturnCode.ConnectionRefusedBadUsernameOrPassword;
return;