use of com.artipie.docker.http.BaseEntity in project artipie by artipie.
the class DockerRoutingSlice method response.
@Override
public Response response(final String line, final Iterable<Map.Entry<String, String>> headers, final Publisher<ByteBuffer> body) {
final RequestLineFrom req = new RequestLineFrom(line);
final String path = req.uri().getPath();
final Matcher matcher = PTN_PATH.matcher(path);
final Response rsp;
if (matcher.matches()) {
final String group = matcher.group(1);
if (group.isEmpty() || group.equals("/")) {
rsp = new AsyncResponse(this.settings.auth().thenApply(auth -> new BasicAuthSlice(new BaseEntity(), auth, user -> !user.equals(Permissions.ANY_USER)).response(line, headers, body)));
} else {
rsp = this.origin.response(new RequestLine(req.method().toString(), new URIBuilder(req.uri()).setPath(group).toString(), req.version()).toString(), new Headers.From(headers, DockerRoutingSlice.HDR_REAL_PATH, path), body);
}
} else {
rsp = this.origin.response(line, headers, body);
}
return rsp;
}
Aggregations