Skip to content

Commit 8d1527b

Browse files
committed
drop optional dependency on Apache commons-codec
1 parent 4f27437 commit 8d1527b

File tree

15 files changed

+60
-197
lines changed

15 files changed

+60
-197
lines changed

changelog

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
[SNAPSHOT]
2+
* drop optional dependency on Apache commons-codec
3+
14
[5.0.0]
25
* drop Java 7 backward compatibility support, become Java 8 only
36
* add JSON token extractor for OAuth 1.0a (thanks to https://github.com/evstropovv)

pom.xml

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -90,13 +90,6 @@
9090
<version>2.8.2</version>
9191
<scope>test</scope>
9292
</dependency>
93-
<dependency>
94-
<groupId>commons-codec</groupId>
95-
<artifactId>commons-codec</artifactId>
96-
<version>1.11</version>
97-
<scope>compile</scope>
98-
<optional>true</optional>
99-
</dependency>
10093
<dependency>
10194
<groupId>com.squareup.okhttp3</groupId>
10295
<artifactId>mockwebserver</artifactId>

scribejava-apis/src/main/java/com/github/scribejava/apis/service/ImgurOAuthServiceImpl.java

Lines changed: 0 additions & 16 deletions
This file was deleted.

scribejava-apis/src/main/java/com/github/scribejava/apis/service/MailruOAuthService.java

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
11
package com.github.scribejava.apis.service;
22

3-
import java.io.UnsupportedEncodingException;
43
import java.net.URLDecoder;
54
import java.util.Map;
65
import java.util.TreeMap;
7-
import org.apache.commons.codec.CharEncoding;
8-
import static org.apache.commons.codec.digest.DigestUtils.md5Hex;
96
import com.github.scribejava.core.builder.api.DefaultApi20;
107
import com.github.scribejava.core.model.OAuthConfig;
118
import com.github.scribejava.core.model.OAuthRequest;
129
import com.github.scribejava.core.oauth.OAuth20Service;
10+
import java.io.UnsupportedEncodingException;
11+
import java.nio.charset.Charset;
12+
import java.security.MessageDigest;
13+
import java.security.NoSuchAlgorithmException;
14+
import java.util.Formatter;
1315
import java.util.stream.Collectors;
1416

1517
public class MailruOAuthService extends OAuth20Service {
@@ -38,11 +40,25 @@ public void signRequest(String accessToken, OAuthRequest request) {
3840
final String urlNew = map.entrySet().stream()
3941
.map(entry -> entry.getKey() + '=' + entry.getValue())
4042
.collect(Collectors.joining());
41-
final String sigSource = URLDecoder.decode(urlNew, CharEncoding.UTF_8) + clientSecret;
42-
request.addQuerystringParameter("sig", md5Hex(sigSource));
43+
final String sigSource = URLDecoder.decode(urlNew, "UTF-8") + clientSecret;
44+
request.addQuerystringParameter("sig", md5(sigSource));
4345
}
4446
} catch (UnsupportedEncodingException e) {
4547
throw new IllegalStateException(e);
4648
}
4749
}
50+
51+
public static String md5(String orgString) {
52+
try {
53+
final MessageDigest md = MessageDigest.getInstance("MD5");
54+
final byte[] array = md.digest(orgString.getBytes(Charset.forName("UTF-8")));
55+
final Formatter builder = new Formatter();
56+
for (byte b : array) {
57+
builder.format("%02x", b);
58+
}
59+
return builder.toString();
60+
} catch (NoSuchAlgorithmException e) {
61+
throw new IllegalStateException("MD5 is unsupported?", e);
62+
}
63+
}
4864
}

scribejava-apis/src/main/java/com/github/scribejava/apis/service/MailruOAuthServiceImpl.java

Lines changed: 0 additions & 16 deletions
This file was deleted.

scribejava-apis/src/main/java/com/github/scribejava/apis/service/OdnoklassnikiOAuthService.java

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,17 @@
66
import com.github.scribejava.core.model.Parameter;
77
import com.github.scribejava.core.model.ParameterList;
88
import com.github.scribejava.core.oauth.OAuth20Service;
9-
10-
import org.apache.commons.codec.CharEncoding;
11-
129
import java.io.UnsupportedEncodingException;
10+
1311
import java.net.URLDecoder;
12+
import java.nio.charset.Charset;
13+
import java.security.MessageDigest;
14+
import java.security.NoSuchAlgorithmException;
1415
import java.util.Collections;
16+
import java.util.Formatter;
1517
import java.util.List;
1618
import java.util.stream.Collectors;
1719

18-
import static org.apache.commons.codec.digest.DigestUtils.md5Hex;
19-
2020
public class OdnoklassnikiOAuthService extends OAuth20Service {
2121

2222
public OdnoklassnikiOAuthService(DefaultApi20 api, OAuthConfig config) {
@@ -27,7 +27,7 @@ public OdnoklassnikiOAuthService(DefaultApi20 api, OAuthConfig config) {
2727
public void signRequest(String accessToken, OAuthRequest request) {
2828
//sig = lower(md5( sorted_request_params_composed_string + md5(access_token + application_secret_key)))
2929
try {
30-
final String tokenDigest = md5Hex(accessToken + getConfig().getApiSecret());
30+
final String tokenDigest = md5(accessToken + getConfig().getApiSecret());
3131

3232
final ParameterList queryParams = request.getQueryStringParams();
3333
queryParams.addAll(request.getBodyParams());
@@ -39,12 +39,26 @@ public void signRequest(String accessToken, OAuthRequest request) {
3939
.map(param -> param.getKey() + '=' + param.getValue())
4040
.collect(Collectors.joining());
4141

42-
final String sigSource = URLDecoder.decode(stringParams, CharEncoding.UTF_8) + tokenDigest;
43-
request.addQuerystringParameter("sig", md5Hex(sigSource).toLowerCase());
42+
final String sigSource = URLDecoder.decode(stringParams, "UTF-8") + tokenDigest;
43+
request.addQuerystringParameter("sig", md5(sigSource).toLowerCase());
4444

4545
super.signRequest(accessToken, request);
4646
} catch (UnsupportedEncodingException unex) {
4747
throw new IllegalStateException(unex);
4848
}
4949
}
50+
51+
public static String md5(String orgString) {
52+
try {
53+
final MessageDigest md = MessageDigest.getInstance("MD5");
54+
final byte[] array = md.digest(orgString.getBytes(Charset.forName("UTF-8")));
55+
final Formatter builder = new Formatter();
56+
for (byte b : array) {
57+
builder.format("%02x", b);
58+
}
59+
return builder.toString();
60+
} catch (NoSuchAlgorithmException e) {
61+
throw new IllegalStateException("MD5 is unsupported?", e);
62+
}
63+
}
5064
}

scribejava-apis/src/main/java/com/github/scribejava/apis/service/OdnoklassnikiServiceImpl.java

Lines changed: 0 additions & 16 deletions
This file was deleted.

scribejava-apis/src/main/java/com/github/scribejava/apis/service/TutByOAuthServiceImpl.java

Lines changed: 0 additions & 16 deletions
This file was deleted.

scribejava-apis/src/test/java/com/github/scribejava/apis/examples/RenrenExample.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import com.github.scribejava.core.model.Verb;
1616
import com.github.scribejava.core.oauth.OAuth20Service;
1717
import java.io.IOException;
18+
import java.util.Formatter;
1819
import java.util.concurrent.ExecutionException;
1920
import java.util.stream.Collectors;
2021
import java.util.stream.Stream;
@@ -96,15 +97,13 @@ public static String md5(String orgString) {
9697
try {
9798
final MessageDigest md = MessageDigest.getInstance("MD5");
9899
final byte[] array = md.digest(orgString.getBytes(Charset.forName("UTF-8")));
99-
final StringBuffer sb = new StringBuffer();
100-
for (int i = 0; i < array.length; ++i) {
101-
sb.append(Integer.toHexString((array[i] & 0xFF) | 0x100).substring(1, 3));
100+
final Formatter builder = new Formatter();
101+
for (byte b : array) {
102+
builder.format("%02x", b);
102103
}
103-
return sb.toString();
104+
return builder.toString();
104105
} catch (NoSuchAlgorithmException e) {
105-
e.printStackTrace();
106+
throw new IllegalStateException("MD5 is unsupported?", e);
106107
}
107-
return null;
108108
}
109-
110109
}

scribejava-core/src/main/java/com/github/scribejava/core/builder/api/OAuth2SignatureType.java

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.github.scribejava.core.builder.api;
22

3-
import com.github.scribejava.core.model.OAuth2AccessToken;
43
import com.github.scribejava.core.model.OAuthConstants;
54
import com.github.scribejava.core.model.OAuthRequest;
65

@@ -26,16 +25,5 @@ public void signRequest(String accessToken, OAuthRequest request) {
2625

2726
};
2827

29-
/**
30-
*
31-
* @param accessToken accessToken
32-
* @param request request
33-
* @deprecated use {@link #signRequest(java.lang.String, com.github.scribejava.core.model.OAuthRequest)}
34-
*/
35-
@Deprecated
36-
public void signRequest(OAuth2AccessToken accessToken, OAuthRequest request) {
37-
signRequest(accessToken == null ? null : accessToken.getAccessToken(), request);
38-
}
39-
4028
public abstract void signRequest(String accessToken, OAuthRequest request);
4129
}

0 commit comments

Comments
 (0)