spring cloud gateway权限鉴定

匿名 (未验证) 提交于 2019-12-03 00:38:01
@Component public class AuthGlobalFilterFilter implements GlobalFilter, Ordered {     private static final String HEADER_KEY= "KEY";     private static final String HEADER_LKEY = "LKEY";      @Autowired     ILoginInfoService loginInfoServiceImpl;      @Override     public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {         String token = exchange.getRequest().getHeaders().getFirst(HEADER_KEY);         if (StringUtils.isEmpty(token)) {             return returnAuthFail(exchange);         }         String login = loginInfoServiceImpl.getLoginTokenFromCacheByToken(token);         if (StringUtils.isEmpty(login)) {             return returnAuthFail(exchange);         }         //loginInfoheader        exchange.getRequest().getHeaders().set(HEADER_LKEY, loginInfo);         return chain.filter(exchange);     }      @Override     public int getOrder() {         return -200;     }       /**      *      *      * @param exchange      * @return      */     private Mono<Void> returnAuthFail(ServerWebExchange exchange) {         ServerHttpResponse serverHttpResponse = exchange.getResponse();         serverHttpResponse.setStatusCode(HttpStatus.UNAUTHORIZED);         byte[] bytes = "{\"status\":\"-1\",\"msg\":\"error\"}".getBytes(StandardCharsets.UTF_8);         DataBuffer buffer = exchange.getResponse().bufferFactory().wrap(bytes);         return exchange.getResponse().writeWith(Flux.just(buffer));     }


参考:https://stackoverflow.com/questions/48491098/how-to-add-some-data-in-body-of-response-for-cloud-api-gateway

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!