Exemplo n.º 1
0
        private bool ValidateMessage(dynamic message)
        {
            string command = (string)message.command;

            switch (command)
            {
            case "AUTHENTICATE":
            {
                string mac = HMacUtil.Encode(((string)message.transactionUuid + "." + (string)message.command));
                return(Equals(mac, (string)message.signature));
            }

            case "GET_USERS_WITH_ROLE":
            {
                string mac = HMacUtil.Encode(((string)message.transactionUuid + "." + (string)message.command + "." + (string)message.payload));
                return(Equals(mac, (string)message.signature));
            }

            default:
                Logger.Information("Unknown command: " + (string)message.command);
                break;
            }

            return(false);
        }
Exemplo n.º 2
0
        internal void Reply(string transactionUuid, string command, bool valid, dynamic payload = null)
        {
            dynamic response = new ExpandoObject();

            response.transactionUuid = transactionUuid;
            response.command         = command;
            response.status          = (valid) ? "true" : "false";
            response.clientVersion   = VERSION;
            response.signature       = HMacUtil.Encode(transactionUuid + "." + command + "." + (valid ? "true" : "false"));
            response.payload         = payload;

            socket.Send(JsonConvert.SerializeObject(response));

            LogResponse(response);
        }