|
10 | 10 | import java.security.cert.X509Certificate;
|
11 | 11 | import java.util.List;
|
12 | 12 | import java.util.Map;
|
| 13 | +import java.util.function.Supplier; |
13 | 14 | import java.util.logging.Level;
|
14 | 15 | import java.util.logging.Logger;
|
15 | 16 |
|
@@ -60,7 +61,7 @@ public class GitLabApiClient implements AutoCloseable {
|
60 | 61 | private String baseUrl;
|
61 | 62 | private String hostUrl;
|
62 | 63 | private TokenType tokenType = TokenType.PRIVATE;
|
63 |
| - private String authToken; |
| 64 | + private Supplier<String> authToken; |
64 | 65 | private String secretToken;
|
65 | 66 | private boolean ignoreCertificateErrors;
|
66 | 67 | private SSLContext openSslContext;
|
@@ -215,7 +216,7 @@ public GitLabApiClient(ApiVersion apiVersion, String hostUrl, TokenType tokenTyp
|
215 | 216 | this.hostUrl += apiVersion.getApiNamespace();
|
216 | 217 |
|
217 | 218 | this.tokenType = tokenType;
|
218 |
| - this.authToken = authToken; |
| 219 | + this.authToken = () -> authToken; |
219 | 220 |
|
220 | 221 | if (secretToken != null) {
|
221 | 222 | secretToken = secretToken.trim();
|
@@ -293,7 +294,7 @@ void setRequestTimeout(Integer connectTimeout, Integer readTimeout) {
|
293 | 294 | * @return the auth token being used by this client
|
294 | 295 | */
|
295 | 296 | String getAuthToken() {
|
296 |
| - return (authToken); |
| 297 | + return (authToken.get()); |
297 | 298 | }
|
298 | 299 |
|
299 | 300 | /**
|
@@ -792,7 +793,7 @@ protected Invocation.Builder invocation(URL url, MultivaluedMap<String, String>
|
792 | 793 | }
|
793 | 794 |
|
794 | 795 | String authHeader = (tokenType == TokenType.OAUTH2_ACCESS ? AUTHORIZATION_HEADER : PRIVATE_TOKEN_HEADER);
|
795 |
| - String authValue = (tokenType == TokenType.OAUTH2_ACCESS ? "Bearer " + authToken : authToken); |
| 796 | + String authValue = (tokenType == TokenType.OAUTH2_ACCESS ? "Bearer " + authToken.get() : authToken.get()); |
796 | 797 | Invocation.Builder builder = target.request();
|
797 | 798 | if (accept == null || accept.trim().length() == 0) {
|
798 | 799 | builder = builder.header(authHeader, authValue);
|
@@ -923,4 +924,12 @@ public boolean verify(String hostname, SSLSession session) {
|
923 | 924 |
|
924 | 925 | return (true);
|
925 | 926 | }
|
| 927 | + |
| 928 | + /** |
| 929 | + * Set auth token supplier for gitlab api client. |
| 930 | + * @param authTokenSupplier - supplier which provide actual auth token |
| 931 | + */ |
| 932 | + public void setAuthTokenSupplier(Supplier<String> authTokenSupplier) { |
| 933 | + this.authToken = authTokenSupplier; |
| 934 | + } |
926 | 935 | }
|
0 commit comments