Skip to content

Commit 315a4da

Browse files
authored
Merge pull request #4 from trocco-io/oauth-support
support OAuth 2.0 authorization
2 parents 8ccfb64 + 1101f7c commit 315a4da

File tree

3 files changed

+28
-7
lines changed

3 files changed

+28
-7
lines changed

README.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,11 @@ TODO: Write short description here and build.gradle file.
1010

1111
## Configuration
1212

13-
- **json_config**: JSON formatted OAuth 2.0 with JWT app configuration. (string, required)
13+
- **auth_method**: name of mechanism to authenticate requests(jwt or oauth. default: jwt)
14+
- "jwt": JWT Auth. see: https://developer.box.com/guides/authentication/jwt/
15+
- **json_config**: JSON formatted OAuth 2.0 with JWT app configuration. (string, required)
16+
- "oauth_2_0": OAuth 2.0 Auth. see: https://developer.box.com/guides/authentication/oauth2/
17+
- **access_token**: credentials used to represent the authenticated user. (string, required)
1418
- **folder_id**: target folder id (string, required)
1519
- **path_prefix**: prefix of target files (string, required)
1620

src/main/java/org/embulk/input/box/BoxClient.java

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.embulk.input.box;
22

3+
import com.box.sdk.BoxAPIConnection;
34
import com.box.sdk.BoxAPIRequest;
45
import com.box.sdk.BoxAPIResponse;
56
import com.box.sdk.BoxConfig;
@@ -19,16 +20,23 @@
1920

2021
public class BoxClient {
2122
private final Logger logger = LoggerFactory.getLogger(BoxClient.class);
22-
private BoxDeveloperEditionAPIConnection client;
23+
private BoxAPIConnection client;
2324
private PluginTask pluginTask;
2425

2526
public BoxClient(PluginTask pluginTask) {
2627
try {
27-
BoxConfig config = BoxConfig.readFrom(new StringReader(pluginTask.getJsonConfig()));
28-
logger.info(config.getClientId());
29-
client = BoxDeveloperEditionAPIConnection.getAppEnterpriseConnection(config);
28+
String authMethod = pluginTask.getAuthMeString();
29+
if (authMethod.equals("oauth_2_0")) {
30+
client = new BoxAPIConnection(pluginTask.getAccessToken().get());
31+
logger.info("OAuth 2.0 authorization.");
32+
} else if (authMethod.equals("jwt")) {
33+
BoxConfig config = BoxConfig.readFrom(new StringReader(pluginTask.getJsonConfig().get()));
34+
client = BoxDeveloperEditionAPIConnection.getAppEnterpriseConnection(config);
35+
logger.info("JWT authorization.");
36+
} else {
37+
throw new ConfigException("auth_method: " + authMethod + " is not allowd");
38+
}
3039
this.pluginTask = pluginTask;
31-
logger.info("JWT authorization.");
3240
} catch (IOException e) {
3341
logger.error(e.getMessage(), e);
3442
throw new ConfigException(e);

src/main/java/org/embulk/input/box/PluginTask.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,17 @@
66
import org.embulk.util.config.Task;
77

88
public interface PluginTask extends Task {
9+
@Config("auth_method")
10+
@ConfigDefault("jwt")
11+
String getAuthMeString();
12+
913
@Config("json_config")
10-
String getJsonConfig();
14+
@ConfigDefault("null")
15+
Optional<String> getJsonConfig();
16+
17+
@Config("access_token")
18+
@ConfigDefault("null")
19+
Optional<String> getAccessToken();
1120

1221
@Config("folder_id")
1322
String getFolderId();

0 commit comments

Comments
 (0)