1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 package org.apache.hc.client5.testing.auth;
29
30 import java.nio.charset.StandardCharsets;
31
32 import org.apache.hc.client5.http.auth.StandardAuthScheme;
33 import org.apache.hc.client5.http.utils.Base64;
34 import org.apache.hc.core5.http.HttpException;
35 import org.apache.hc.core5.http.ProtocolException;
36
37
38
39
40 @Deprecated
41 public class BasicAuthTokenExtractor {
42
43 public String extract(final String challengeResponse) throws HttpException {
44 if (challengeResponse != null) {
45 final int i = challengeResponse.indexOf(' ');
46 if (i == -1) {
47 throw new ProtocolException("Invalid challenge response: " + challengeResponse);
48 }
49 final String schemeName = challengeResponse.substring(0, i);
50 if (schemeName.equalsIgnoreCase(StandardAuthScheme.BASIC)) {
51 final String s = challengeResponse.substring(i + 1).trim();
52 try {
53 final byte[] credsRaw = s.getBytes(StandardCharsets.US_ASCII);
54 final Base64 codec = new Base64();
55 return new String(codec.decode(credsRaw), StandardCharsets.US_ASCII);
56 } catch (final IllegalArgumentException ex) {
57 throw new ProtocolException("Malformed Basic credentials");
58 }
59 }
60 }
61 return null;
62 }
63
64 }