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;
29
30 import java.util.Objects;
31
32 import org.apache.hc.client5.testing.auth.AuthResult;
33 import org.apache.hc.client5.testing.auth.Authenticator;
34 import org.apache.hc.core5.http.message.BasicNameValuePair;
35 import org.apache.hc.core5.net.URIAuthority;
36 import org.apache.hc.core5.util.TextUtils;
37
38 public class BasicTestAuthenticator implements Authenticator {
39
40 private final String userToken;
41 private final String realm;
42
43 public BasicTestAuthenticator(final String userToken, final String realm) {
44 this.userToken = userToken;
45 this.realm = realm;
46 }
47
48 @Override
49 public boolean authenticate(final URIAuthority authority, final String requestUri, final String credentials) {
50 return Objects.equals(userToken, credentials);
51 }
52
53 @Override
54 public AuthResult perform(final URIAuthority authority,
55 final String requestUri,
56 final String credentials) {
57 final boolean result = authenticate(authority, requestUri, credentials);
58 if (result) {
59 return new AuthResult(true);
60 }
61 if (TextUtils.isBlank(credentials)) {
62 return new AuthResult(false);
63 }
64 final String error = credentials.endsWith("-expired") ? "token expired" : "invalid token";
65 return new AuthResult(false, new BasicNameValuePair("error", error));
66 }
67
68 @Override
69 public String getRealm(final URIAuthority authority, final String requestUri) {
70 return realm;
71 }
72
73 }