Skip to content

Commit 39052f3

Browse files
authored
mcopy: support basic auth via URL (#451)
1 parent ede488c commit 39052f3

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

src/main/java/me/itzg/helpers/http/FetchBuilderBase.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
11
package me.itzg.helpers.http;
22

3-
import static io.netty.handler.codec.http.HttpHeaderNames.ACCEPT;
4-
import static io.netty.handler.codec.http.HttpHeaderNames.CONTENT_TYPE;
3+
import static io.netty.handler.codec.http.HttpHeaderNames.*;
54

65
import com.fasterxml.jackson.databind.ObjectMapper;
76
import io.netty.handler.codec.http.HttpHeaderNames;
87
import io.netty.handler.codec.http.HttpHeaders;
98
import io.netty.handler.codec.http.HttpStatusClass;
109
import io.netty.handler.codec.http.HttpUtil;
1110
import java.net.URI;
11+
import java.nio.charset.StandardCharsets;
1212
import java.nio.file.Path;
1313
import java.time.ZoneId;
1414
import java.time.format.DateTimeFormatter;
15+
import java.util.Base64;
1516
import java.util.Collections;
1617
import java.util.HashMap;
1718
import java.util.HashSet;
@@ -241,6 +242,15 @@ protected void applyHeaders(io.netty.handler.codec.http.HttpHeaders headers) {
241242
);
242243
}
243244

245+
final String rawUserInfo = state.uri.getRawUserInfo();
246+
if (rawUserInfo != null) {
247+
headers.set(
248+
AUTHORIZATION.toString(),
249+
"Basic " +
250+
Base64.getEncoder().encodeToString(rawUserInfo.getBytes(StandardCharsets.UTF_8))
251+
);
252+
}
253+
244254
state.requestHeaders.forEach(headers::set);
245255
}
246256

src/main/java/me/itzg/helpers/http/OutputToDirectoryFetchBuilder.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ public Path execute() throws IOException {
6969
public Mono<Path> assemble() {
7070
return useReactiveClient(client ->
7171
client
72+
.headers(this::applyHeaders)
7273
.followRedirect(true)
7374
.doOnRequest(debugLogRequest(log, "file head fetch"))
7475
.head()
@@ -202,6 +203,7 @@ else if (skipUpToDate) {
202203
return alreadyUpToDateMono
203204
.filter(alreadyUpToDate -> !alreadyUpToDate)
204205
.flatMap(notUsed -> client
206+
.headers(this::applyHeaders)
205207
.headersWhen(headers ->
206208
skipUpToDate ?
207209
fileLastModifiedMono

0 commit comments

Comments
 (0)