X Tutup
Skip to content

Commit bca97ef

Browse files
committed
java7 compatible again!
1 parent 7b8aab5 commit bca97ef

File tree

28 files changed

+1311
-103
lines changed

28 files changed

+1311
-103
lines changed

changelog

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
[SNAPSHOT]
22
* allow 'null' as callback. It's an optional parameter. Remove "oob" as default (thanks to https://github.com/massongit)
3+
* java7 compatible again!
34

45
[5.1.0]
56
* drop optional dependency on Apache commons-codec

pom.xml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@
110110
<dependency>
111111
<groupId>com.puppycrawl.tools</groupId>
112112
<artifactId>checkstyle</artifactId>
113-
<version>8.7</version>
113+
<version>6.19</version>
114114
</dependency>
115115
</dependencies>
116116
</plugin>
@@ -129,8 +129,8 @@
129129
<version>3.7.0</version>
130130
<configuration>
131131
<encoding>UTF-8</encoding>
132-
<source>1.8</source>
133-
<target>1.8</target>
132+
<source>1.7</source>
133+
<target>1.7</target>
134134
<showDeprecation>true</showDeprecation>
135135
</configuration>
136136
</plugin>
@@ -192,6 +192,7 @@
192192
<id>validate</id>
193193
<phase>validate</phase>
194194
<configuration>
195+
<excludes>main/java/com/github/scribejava/core/java8/*</excludes>
195196
<sourceDirectory>${basedir}/src</sourceDirectory>
196197
<configLocation>checkstyle.xml</configLocation>
197198
<encoding>UTF-8</encoding>

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

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import java.security.MessageDigest;
1313
import java.security.NoSuchAlgorithmException;
1414
import java.util.Formatter;
15-
import java.util.stream.Collectors;
1615

1716
public class MailruOAuthService extends OAuth20Service {
1817

@@ -37,10 +36,15 @@ public void signRequest(String accessToken, OAuthRequest request) {
3736
final String[] parts = param.split("=");
3837
map.put(parts[0], (parts.length == 1) ? "" : parts[1]);
3938
}
40-
final String urlNew = map.entrySet().stream()
41-
.map(entry -> entry.getKey() + '=' + entry.getValue())
42-
.collect(Collectors.joining());
43-
final String sigSource = URLDecoder.decode(urlNew, "UTF-8") + clientSecret;
39+
40+
final StringBuilder urlNew = new StringBuilder();
41+
for (Map.Entry<String, String> entry : map.entrySet()) {
42+
urlNew.append(entry.getKey());
43+
urlNew.append('=');
44+
urlNew.append(entry.getValue());
45+
}
46+
47+
final String sigSource = URLDecoder.decode(urlNew.toString(), "UTF-8") + clientSecret;
4448
request.addQuerystringParameter("sig", md5(sigSource));
4549
}
4650
} catch (UnsupportedEncodingException e) {

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

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
import java.util.Collections;
1616
import java.util.Formatter;
1717
import java.util.List;
18-
import java.util.stream.Collectors;
1918

2019
public class OdnoklassnikiOAuthService extends OAuth20Service {
2120

@@ -35,11 +34,14 @@ public void signRequest(String accessToken, OAuthRequest request) {
3534

3635
Collections.sort(allParams);
3736

38-
final String stringParams = allParams.stream()
39-
.map(param -> param.getKey() + '=' + param.getValue())
40-
.collect(Collectors.joining());
37+
final StringBuilder stringParams = new StringBuilder();
38+
for (Parameter param : allParams) {
39+
stringParams.append(param.getKey())
40+
.append('=')
41+
.append(param.getValue());
42+
}
4143

42-
final String sigSource = URLDecoder.decode(stringParams, "UTF-8") + tokenDigest;
44+
final String sigSource = URLDecoder.decode(stringParams.toString(), "UTF-8") + tokenDigest;
4345
request.addQuerystringParameter("sig", md5(sigSource).toLowerCase());
4446

4547
super.signRequest(accessToken, request);

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

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,11 @@
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.ArrayList;
19+
import java.util.Collections;
1820
import java.util.Formatter;
21+
import java.util.List;
1922
import java.util.concurrent.ExecutionException;
20-
import java.util.stream.Collectors;
21-
import java.util.stream.Stream;
2223

2324
public final class RenrenExample {
2425

@@ -68,17 +69,20 @@ public static void main(String... args) throws IOException, InterruptedException
6869
parameters.put("format", "json");
6970
parameters.put("v", "1.0");
7071

71-
parameters.forEach((key, value) -> request.addQuerystringParameter(key, value));
72-
73-
final String sig = Stream.concat(
74-
Stream.concat(
75-
parameters.entrySet().stream()
76-
.map(entry -> String.format("%s=%s", entry.getKey(), entry.getValue())),
77-
Stream.of(String.format("%s=%s", OAuthConstants.ACCESS_TOKEN, accessToken.getAccessToken())))
78-
.sorted(),
79-
Stream.of(apiSecret))
80-
.collect(Collectors.joining());
72+
final List<String> sigString = new ArrayList<>(parameters.size() + 1);
73+
for (Map.Entry<String, String> parameter : parameters.entrySet()) {
74+
request.addQuerystringParameter(parameter.getKey(), parameter.getValue());
75+
sigString.add(String.format("%s=%s", parameter.getKey(), parameter.getValue()));
76+
}
77+
sigString.add(String.format("%s=%s", OAuthConstants.ACCESS_TOKEN, accessToken.getAccessToken()));
78+
Collections.sort(sigString);
79+
final StringBuilder sigBuilder = new StringBuilder();
80+
for (String param : sigString) {
81+
sigBuilder.append(param);
82+
}
83+
sigBuilder.append(apiSecret);
8184

85+
final String sig = sigBuilder.toString();
8286
System.out.println("Sig string: " + sig);
8387
request.addQuerystringParameter("sig", md5(sig));
8488
service.signRequest(accessToken, request);

scribejava-core/src/main/java/com/github/scribejava/core/builder/ServiceBuilder.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,11 +129,11 @@ public ServiceBuilder debug() {
129129
}
130130

131131
/**
132-
* Returns the fully configured {@link S}
132+
* Returns the fully configured {@link OAuthService}
133133
*
134134
* @param <S> OAuthService implementation (OAuth1/OAuth2/any API specific)
135135
* @param api will build Service for this API
136-
* @return fully configured {@link S}
136+
* @return fully configured {@link OAuthService}
137137
*/
138138
public <S extends OAuthService> S build(BaseApi<S> api) {
139139
return api.createService(new OAuthConfig(apiKey, apiSecret, callback, scope, debugStream, state, responseType,

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package com.github.scribejava.core.builder.api;
22

3+
import com.github.scribejava.core.java8.Base64;
34
import com.github.scribejava.core.model.OAuthConfig;
45
import com.github.scribejava.core.model.OAuthConstants;
56
import com.github.scribejava.core.model.OAuthRequest;
67
import java.nio.charset.Charset;
7-
import java.util.Base64;
88

99
/**
1010
* Represents<br>

scribejava-core/src/main/java/com/github/scribejava/core/extractors/HeaderExtractorImpl.java

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import com.github.scribejava.core.model.OAuthRequest;
77
import com.github.scribejava.core.utils.OAuthEncoder;
88
import com.github.scribejava.core.utils.Preconditions;
9-
import java.util.stream.Collectors;
109

1110
/**
1211
* Default implementation of {@link HeaderExtractor}. Conforms to OAuth 1.0a
@@ -24,15 +23,26 @@ public String extract(OAuthRequest request) {
2423
checkPreconditions(request);
2524
final Map<String, String> parameters = request.getOauthParameters();
2625

27-
final String paramsString = parameters.entrySet().stream()
28-
.map(entry -> String.format("%s=\"%s\"", entry.getKey(), OAuthEncoder.encode(entry.getValue())))
29-
.collect(Collectors.joining(PARAM_SEPARATOR, PREAMBLE, ""));
26+
final StringBuilder header = new StringBuilder(PREAMBLE);
3027

31-
if (request.getRealm() == null || request.getRealm().isEmpty()) {
32-
return paramsString;
28+
for (Map.Entry<String, String> parameter : parameters.entrySet()) {
29+
if (header.length() > PREAMBLE.length()) {
30+
header.append(PARAM_SEPARATOR);
31+
}
32+
header.append(parameter.getKey())
33+
.append("=\"")
34+
.append(OAuthEncoder.encode(parameter.getValue()))
35+
.append('"');
3336
}
3437

35-
return paramsString + PARAM_SEPARATOR + String.format("%s=\"%s\"", OAuthConstants.REALM, request.getRealm());
38+
if (request.getRealm() != null && !request.getRealm().isEmpty()) {
39+
header.append(PARAM_SEPARATOR)
40+
.append(OAuthConstants.REALM)
41+
.append("=\"")
42+
.append(request.getRealm())
43+
.append('"');
44+
}
45+
return header.toString();
3646
}
3747

3848
private void checkPreconditions(OAuthRequest request) {

scribejava-core/src/main/java/com/github/scribejava/core/httpclient/jdk/JDKHttpClient.java

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import java.net.URL;
1414
import java.net.UnknownHostException;
1515
import java.util.HashMap;
16+
import java.util.List;
1617
import java.util.Map;
1718
import java.util.concurrent.ExecutionException;
1819
import java.util.concurrent.Future;
@@ -140,18 +141,24 @@ abstract void setBody(HttpURLConnection connection, Object bodyContents, boolean
140141

141142
private static Map<String, String> parseHeaders(HttpURLConnection conn) {
142143
final Map<String, String> headers = new HashMap<>();
143-
conn.getHeaderFields().forEach((key, value) -> {
144+
145+
for (Map.Entry<String, List<String>> headerField : conn.getHeaderFields().entrySet()) {
146+
final String key = headerField.getKey();
147+
final String value = headerField.getValue().get(0);
144148
if ("Content-Encoding".equalsIgnoreCase(key)) {
145-
headers.put("Content-Encoding", value.get(0));
149+
headers.put("Content-Encoding", value);
146150
} else {
147-
headers.put(key, value.get(0));
151+
headers.put(key, value);
148152
}
149-
});
153+
}
150154
return headers;
151155
}
152156

153157
private static void addHeaders(HttpURLConnection connection, Map<String, String> headers, String userAgent) {
154-
headers.forEach((key, value) -> connection.setRequestProperty(key, value));
158+
for (Map.Entry<String, String> header : headers.entrySet()) {
159+
connection.setRequestProperty(header.getKey(), header.getValue());
160+
}
161+
155162
if (userAgent != null) {
156163
connection.setRequestProperty(OAuthConstants.USER_AGENT_HEADER_NAME, userAgent);
157164
}

0 commit comments

Comments
 (0)
X Tutup