Pipelined System Implementation:
Define "pipe-execute-type"?structure for Pile-lined system such as AccessGateway or Adaptor to decide from which layer to do logic process.
? ? ? ? ? Map each layer name to the process order when binding pipes together. (e.g. If in AccessGateway ,"Jwt auth" mapped to 1, "router" to 2, "desensitize" to 3.)
? ? ? ? ? ? ? a. If in AccessGateway, add the info into Http Header via Http rest invoking.?If?"pipe-execute-type" = "normal" or "execute_point_{order}" and order value <= currency layer order, then execute this layer process logic or just skip.
? ? ? ? ? ? ? b. If in Adaptor, add the info into http body via Json-RPC invoking.? ?If "pipe-execute-type" = "normal" or "execute_point_{order}" and order value?<= currency layer order, then execute this layer process logic or just skip.
Router Implementation:
Define?"route-type","region-uri" structure for router layer to route to target region service.? "route-type" including: "Local", "Region_XXX"? which indicating local processing or remote region node? XXX processing)
If in AccessGateway, add the info into http header via Http rest invoking
AccessGateway execution logic:
The execution order of AccessGateway is: jwt layer(1) → router layer(2) → desensitization layer(3). So when a request incoming, it will pass through as below logic
jwt?layer: If "pipe-execute-type"="normal" or?"execute_point_{order}" and order value <=1, then doing process logic(verify jwt ) or just skip.
router?layer: If "pipe-execute-type"="normal" or?"execute_point_{order}" and order value <=2, then doing below process logic or just skip.
If "route-type"="local", skip to next step.
If "route-type"="region_xxx", set?"pipe-execute-type"="desensitize", fetch region uri of "xxx" from Config Center Cache and then http invoking to xxx region AccessGateway endpoint
desensitization?layer: If "pipe-execute-type"="normal" or?"execute_point_{order}" and order value <=3, then doing process logic(exchange card info with token) or just skip.