public bool ProcessOutgoingRequest(IRestRequest request, PacketPayload payload) { if (request == null) { throw new ArgumentNullException(nameof(request)); } if (payload == null) { throw new ArgumentNullException(nameof(payload)); } //If the payload requires authorization to handle on the server then we should //send the JWT header with the request. //Check if the payload requires authorizatation if (!payload.GetType().HasAttribute <AuthorizationRequiredAttribute>()) { return(true); //return true means the middleware didn't encounter a failure } //If an authorization required payload is being sent but we have no token we must //throw an error if (!tokenService.isTokenAvailable) { throw new InvalidOperationException($"{nameof(ITokenService)} indicated the token was unavailable. Service cannot send {payload.GetType().Name} as it requires the token to authenticate."); } request.AddHeader("Authorization", tokenService.FullTokenHeaderValue); return(true); }
public bool TryProcessPayload(PacketPayload payload, IMessageParameters parameters, INetPeer peer) { Logger.DebugFormat("Recieved Payload Type: {0} from Peer: {1}", payload?.GetType(), peer.PeerDetails.ConnectionID); //Always return false for logging so we don't consume return(false); }
/// <summary> /// Enqueues a webrequest to be handled with the provided serialized data. /// This /// </summary> /// <param name="requestPayload">Request payload.</param> /// <param name="requestName">String <see cref="Type"/> name of the <see cref="PacketPayload"/> type.</param> /// <returns>Returns the result of the enqueued request.</returns> public SendResult EnqueueRequest(PacketPayload requestPayload) { //Check param if (requestPayload == null) throw new ArgumentNullException(nameof(requestPayload), $"Provided parameter request payload {requestPayload} is null."); return EnqueueRequest(new RequestMessage(requestPayload), requestPayload.GetType().Name, requestPayload); }
protected override void OnReceiveRequest(PacketPayload payload, IMessageParameters parameters) { //We're not interested in unencrypted messages on the ProxyLoadBalancing server if (!parameters.Encrypted) { return; } else { Logger.WarnFormat("Client: {0} at IP {1} tried to send unencrypted payload Type: {2}", PeerDetails.ConnectionID, PeerDetails.RemoteIP.ToString(), payload.GetType()); } }