public override void Configure(Container container)
        {
            RequestConverters.Add((req, requestDto) => {
                var encRequest = requestDto as BasicEncryptedMessage;
                if (encRequest == null)
                {
                    return(null);
                }

                var requestType   = Metadata.GetOperationType(encRequest.OperationName);
                var decryptedJson = RsaUtils.Decrypt(encRequest.EncryptedBody, SecureConfig.PrivateKeyXml);
                var request       = JsonSerializer.DeserializeFromString(decryptedJson, requestType);

                req.Items["_encrypt"] = encRequest;

                return(request);
            });

            ResponseConverters.Add((req, response) => {
                if (!req.Items.ContainsKey("_encrypt"))
                {
                    return(null);
                }

                var encResponse = RsaUtils.Encrypt(response.ToJson(), SecureConfig.PublicKeyXml);
                return(new BasicEncryptedMessageResponse
                {
                    OperationName = response.GetType().Name,
                    EncryptedBody = encResponse
                });
            });
        }
示例#2
0
 protected void PopulateArrayFilters()
 {
     PreRequestFiltersArray                = PreRequestFilters.ToArray();
     RequestConvertersArray                = RequestConverters.ToArray();
     ResponseConvertersArray               = ResponseConverters.ToArray();
     GlobalRequestFiltersArray             = GlobalRequestFilters.ToArray();
     GlobalRequestFiltersAsyncArray        = GlobalRequestFiltersAsync.ToArray();
     GlobalResponseFiltersArray            = GlobalResponseFilters.ToArray();
     GlobalResponseFiltersAsyncArray       = GlobalResponseFiltersAsync.ToArray();
     GlobalMessageRequestFiltersArray      = GlobalMessageRequestFilters.ToArray();
     GlobalMessageRequestFiltersAsyncArray = GlobalMessageRequestFiltersAsync.ToArray();
     GlobalMessageResponseFiltersArray     = GlobalMessageResponseFilters.ToArray();
     RawHttpHandlersArray             = RawHttpHandlers.ToArray();
     CatchAllHandlersArray            = CatchAllHandlers.ToArray();
     GatewayRequestFiltersArray       = GatewayRequestFilters.ToArray();
     GatewayRequestFiltersAsyncArray  = GatewayRequestFiltersAsync.ToArray();
     GatewayResponseFiltersArray      = GatewayResponseFilters.ToArray();
     GatewayResponseFiltersAsyncArray = GatewayResponseFiltersAsync.ToArray();
 }
示例#3
0
 public DeleteHandler(RequestConverters helpers, IMemCache cache)
 {
     _helpers = helpers;
     _cache   = cache;
 }
示例#4
0
 public AddHandler(RequestConverters helpers, IMemCache cache) :
     base(helpers, cache)
 {
 }
示例#5
0
 public MutateHandler(RequestConverters helpers, IMemCache cache, IScheduler scheduler)
 {
     _helpers = helpers;
     _cache   = cache;
 }
示例#6
0
 public TouchHandler(RequestConverters converters, IMemCache cache)
 {
     _converters = converters;
     _cache      = cache;
 }
示例#7
0
 public GetHandler(RequestConverters helpers, IMemCache cache, IScheduler scheduler)
 {
     _helpers   = helpers;
     _cache     = cache;
     _scheduler = scheduler;
 }