org.springframework.http.server.reactive.ServerHttpRequest#getPath ( )源码实例Demo

下面列出了org.springframework.http.server.reactive.ServerHttpRequest#getPath ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: gateway   文件: LogFilter.java
/**
 * 请求信息日志过滤器
 *
 * @param exchange ServerWebExchange
 * @param chain    GatewayFilterChain
 * @return Mono
 */
@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
    ServerHttpRequest request = exchange.getRequest();
    HttpHeaders headers = request.getHeaders();
    HttpMethod method = request.getMethod();
    RequestPath path = request.getPath();
    String source = getIp(headers);
    if (source == null || source.isEmpty()) {
        source = request.getRemoteAddress().getAddress().getHostAddress();
    }

    String requestId = Util.uuid();
    String fingerprint = Util.md5(source + headers.getFirst("user-agent"));
    LogDto log = new LogDto();
    log.setRequestId(requestId);
    log.setSource(source);
    log.setMethod(method.name());
    log.setUrl(path.value());
    log.setHeaders(headers.toSingleValueMap());
    request.mutate().header("requestId", requestId).build();
    request.mutate().header("fingerprint", fingerprint).build();

    // 读取请求参数
    MultiValueMap<String, String> params = request.getQueryParams();
    log.setParams(params.isEmpty() ? null : params.toSingleValueMap());

    // 如请求方法为GET或Body为空或Body不是Json,则打印日志后结束
    long length = headers.getContentLength();
    MediaType contentType = headers.getContentType();
    if (length <= 0 || !contentType.equalsTypeAndSubtype(MediaType.APPLICATION_JSON)) {
        logger.info("请求参数: {}", log.toString());

        return chain.filter(exchange);
    }

    return readBody(exchange, chain, log);
}
 
@Override
public Mono<Void> handle(ServerWebExchange exchange, Throwable ex) {
	ServerHttpRequest request = exchange.getRequest();
	String rawQuery = request.getURI().getRawQuery();
	String query = StringUtils.hasText(rawQuery) ? "?" + rawQuery : "";
	HttpMethod httpMethod = request.getMethod();
	String description = "HTTP " + httpMethod + " \"" + request.getPath() + query + "\"";
	return Mono.error(ex).checkpoint(description + " [ExceptionHandlingWebHandler]").cast(Void.class);
}
 
private String formatRequest(ServerHttpRequest request) {
	String rawQuery = request.getURI().getRawQuery();
	String query = StringUtils.hasText(rawQuery) ? "?" + rawQuery : "";
	return "HTTP " + request.getMethod() + " \"" + request.getPath() + query + "\"";
}
 
private String formatRequest(ServerHttpRequest request) {
	String rawQuery = request.getURI().getRawQuery();
	String query = StringUtils.hasText(rawQuery) ? "?" + rawQuery : "";
	return "HTTP " + request.getMethod() + " \"" + request.getPath() + query + "\"";
}
 
源代码5 项目: light-security   文件: ReactiveRestfulMatchUtil.java
/**
 * 获取请求路径
 *
 * @param request 请求
 * @return 请求路径
 */
private static String getRequestPath(ServerHttpRequest request) {
    RequestPath path = request.getPath();
    return path.toString();
}