Skip to content

Commit 4bb9be6

Browse files
committed
add oauth accessToken as an optional authorization mechanism
1 parent d3371c1 commit 4bb9be6

File tree

1 file changed

+20
-3
lines changed

1 file changed

+20
-3
lines changed

src/main/java/org/zendesk/client/v2/Zendesk.java

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ public class Zendesk implements Closeable {
2626
private final String url;
2727
private final ObjectMapper mapper;
2828
private final Logger logger;
29+
private final String accessToken;
2930
private boolean closed = false;
3031
private static final Map<String, Class<? extends SearchResultEntity>> searchResultTypes = searchResultTypes();
3132
private static final Map<String, Class<? extends Target>> targetTypes = targetTypes();
@@ -59,7 +60,7 @@ private static Map<String, Class<? extends Target>> targetTypes() {
5960
return Collections.unmodifiableMap(result);
6061
}
6162

62-
private Zendesk(AsyncHttpClient client, String url, String username, String password) {
63+
private Zendesk(AsyncHttpClient client, String url, String username, String password, String accessToken) {
6364
this.logger = LoggerFactory.getLogger(Zendesk.class);
6465
this.closeClient = client == null;
6566
this.client = client == null ? new AsyncHttpClient() : client;
@@ -77,6 +78,7 @@ private Zendesk(AsyncHttpClient client, String url, String username, String pass
7778
}
7879
this.realm = null;
7980
}
81+
this.accessToken = accessToken;
8082
this.mapper = createMapper();
8183
}
8284

@@ -774,6 +776,7 @@ private Request req(String method, Uri template) {
774776
if (realm != null) {
775777
builder.setRealm(realm);
776778
}
779+
addAccessTokenAuth(builder);
777780
builder.setUrl(template.toString());
778781
return builder.build();
779782
}
@@ -783,6 +786,7 @@ private Request req(String method, Uri template, String contentType, byte[] body
783786
if (realm != null) {
784787
builder.setRealm(realm);
785788
}
789+
addAccessTokenAuth(builder);
786790
builder.setUrl(template.toString());
787791
builder.addHeader("Content-type", contentType);
788792
builder.setBody(body);
@@ -794,10 +798,17 @@ private Request req(String method, Uri template, int page) {
794798
if (realm != null) {
795799
builder.setRealm(realm);
796800
}
801+
addAccessTokenAuth(builder);
797802
builder.addQueryParameter("page", Integer.toString(page));
798803
builder.setUrl(template.toString().replace("%2B", "+")); //replace out %2B with + due to API restriction
799804
return builder.build();
800805
}
806+
807+
private void addAccessTokenAuth(RequestBuilder builder) {
808+
if (accessToken != null) {
809+
builder.addHeader("Authorization", "Bearer " + accessToken);
810+
}
811+
}
801812

802813
protected AsyncCompletionHandler<Void> handleStatus() {
803814
return new AsyncCompletionHandler<Void>() {
@@ -1118,6 +1129,7 @@ public static class Builder {
11181129
private String username = null;
11191130
private String password = null;
11201131
private String token = null;
1132+
private String accessToken = null;
11211133

11221134
public Builder(String url) {
11231135
this.url = url;
@@ -1149,15 +1161,20 @@ public Builder setToken(String token) {
11491161
return this;
11501162
}
11511163

1164+
public Builder setAccessToken(String accessToken) {
1165+
this.accessToken = accessToken;
1166+
return this;
1167+
}
1168+
11521169
public Builder setRetry(boolean retry) {
11531170
return this;
11541171
}
11551172

11561173
public Zendesk build() {
11571174
if (token == null) {
1158-
return new Zendesk(client, url, username, password);
1175+
return new Zendesk(client, url, username, password, accessToken);
11591176
}
1160-
return new Zendesk(client, url, username + "/token", token);
1177+
return new Zendesk(client, url, username + "/token", token, accessToken);
11611178
}
11621179
}
11631180

0 commit comments

Comments
 (0)