Skip to content

Commit b06efa5

Browse files
Merge pull request scribejava#431 from angelocorreia/master
Remove port 80 and 443 from base string
2 parents 11dc6b1 + d1274eb commit b06efa5

3 files changed

Lines changed: 111 additions & 3 deletions

File tree

src/main/java/org/scribe/model/Request.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -237,14 +237,22 @@ public String getUrl()
237237
}
238238

239239
/**
240-
* Returns the URL without the port and the query string part.
240+
* Returns the URL without the default port and the query string part.
241241
*
242242
* @return the OAuth-sanitized URL
243243
*/
244244
public String getSanitizedUrl()
245245
{
246-
return url.replaceAll("\\?.*", "").replace("\\:\\d{4}", "");
247-
}
246+
if(url.startsWith("http://") && (url.endsWith(":80") || url.contains(":80/"))){
247+
return url.replaceAll("\\?.*", "").replaceAll(":80", "");
248+
}
249+
else if(url.startsWith("https://") && (url.endsWith(":443") || url.contains(":443/"))){
250+
return url.replaceAll("\\?.*", "").replaceAll(":443", "");
251+
}
252+
else{
253+
return url.replaceAll("\\?.*", "");
254+
}
255+
}
248256

249257
/**
250258
* Returns the body of the request

src/test/java/org/scribe/extractors/BaseStringExtractorTest.java

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,21 @@ public class BaseStringExtractorTest
1212

1313
private BaseStringExtractorImpl extractor;
1414
private OAuthRequest request;
15+
private OAuthRequest requestPort80;
16+
private OAuthRequest requestPort80_2;
17+
private OAuthRequest requestPort8080;
18+
private OAuthRequest requestPort443;
19+
private OAuthRequest requestPort443_2;
1520

1621
@Before
1722
public void setup()
1823
{
1924
request = ObjectMother.createSampleOAuthRequest();
25+
requestPort80 = ObjectMother.createSampleOAuthRequestPort80();
26+
requestPort80_2 = ObjectMother.createSampleOAuthRequestPort80_2();
27+
requestPort8080 = ObjectMother.createSampleOAuthRequestPort8080();
28+
requestPort443 = ObjectMother.createSampleOAuthRequestPort443();
29+
requestPort443_2 = ObjectMother.createSampleOAuthRequestPort443_2();
2030
extractor = new BaseStringExtractorImpl();
2131
}
2232

@@ -27,7 +37,47 @@ public void shouldExtractBaseStringFromOAuthRequest()
2737
String baseString = extractor.extract(request);
2838
assertEquals(expected, baseString);
2939
}
40+
41+
@Test
42+
public void shouldExcludePort80()
43+
{
44+
String expected = "GET&http%3A%2F%2Fexample.com&oauth_callback%3Dhttp%253A%252F%252Fexample%252Fcallback%26oauth_consumer_key%3DAS%2523%2524%255E%252A%2540%2526%26oauth_signature%3DOAuth-Signature%26oauth_timestamp%3D123456";
45+
String baseString = extractor.extract(requestPort80);
46+
assertEquals(expected, baseString);
47+
}
48+
49+
@Test
50+
public void shouldExcludePort80_2()
51+
{
52+
String expected = "GET&http%3A%2F%2Fexample.com%2Ftest&oauth_callback%3Dhttp%253A%252F%252Fexample%252Fcallback%26oauth_consumer_key%3DAS%2523%2524%255E%252A%2540%2526%26oauth_signature%3DOAuth-Signature%26oauth_timestamp%3D123456";
53+
String baseString = extractor.extract(requestPort80_2);
54+
assertEquals(expected, baseString);
55+
}
56+
57+
@Test
58+
public void shouldIncludePort8080()
59+
{
60+
String expected = "GET&http%3A%2F%2Fexample.com%3A8080&oauth_callback%3Dhttp%253A%252F%252Fexample%252Fcallback%26oauth_consumer_key%3DAS%2523%2524%255E%252A%2540%2526%26oauth_signature%3DOAuth-Signature%26oauth_timestamp%3D123456";
61+
String baseString = extractor.extract(requestPort8080);
62+
assertEquals(expected, baseString);
63+
}
3064

65+
@Test
66+
public void shouldExcludePort443()
67+
{
68+
String expected = "GET&https%3A%2F%2Fexample.com&oauth_callback%3Dhttp%253A%252F%252Fexample%252Fcallback%26oauth_consumer_key%3DAS%2523%2524%255E%252A%2540%2526%26oauth_signature%3DOAuth-Signature%26oauth_timestamp%3D123456";
69+
String baseString = extractor.extract(requestPort443);
70+
assertEquals(expected, baseString);
71+
}
72+
73+
@Test
74+
public void shouldExcludePort443_2()
75+
{
76+
String expected = "GET&https%3A%2F%2Fexample.com%2Ftest&oauth_callback%3Dhttp%253A%252F%252Fexample%252Fcallback%26oauth_consumer_key%3DAS%2523%2524%255E%252A%2540%2526%26oauth_signature%3DOAuth-Signature%26oauth_timestamp%3D123456";
77+
String baseString = extractor.extract(requestPort443_2);
78+
assertEquals(expected, baseString);
79+
}
80+
3181
@Test(expected = IllegalArgumentException.class)
3282
public void shouldThrowExceptionIfRquestIsNull()
3383
{

src/test/java/org/scribe/test/helpers/ObjectMother.java

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,54 @@ public static OAuthRequest createSampleOAuthRequest()
1414
request.addOAuthParameter(OAuthConstants.SIGNATURE, "OAuth-Signature");
1515
return request;
1616
}
17+
18+
public static OAuthRequest createSampleOAuthRequestPort80()
19+
{
20+
OAuthRequest request = new OAuthRequest(Verb.GET, "http://example.com:80");
21+
request.addOAuthParameter(OAuthConstants.TIMESTAMP, "123456");
22+
request.addOAuthParameter(OAuthConstants.CONSUMER_KEY, "AS#$^*@&");
23+
request.addOAuthParameter(OAuthConstants.CALLBACK, "http://example/callback");
24+
request.addOAuthParameter(OAuthConstants.SIGNATURE, "OAuth-Signature");
25+
return request;
26+
}
27+
28+
public static OAuthRequest createSampleOAuthRequestPort80_2()
29+
{
30+
OAuthRequest request = new OAuthRequest(Verb.GET, "http://example.com:80/test");
31+
request.addOAuthParameter(OAuthConstants.TIMESTAMP, "123456");
32+
request.addOAuthParameter(OAuthConstants.CONSUMER_KEY, "AS#$^*@&");
33+
request.addOAuthParameter(OAuthConstants.CALLBACK, "http://example/callback");
34+
request.addOAuthParameter(OAuthConstants.SIGNATURE, "OAuth-Signature");
35+
return request;
36+
}
37+
38+
public static OAuthRequest createSampleOAuthRequestPort8080()
39+
{
40+
OAuthRequest request = new OAuthRequest(Verb.GET, "http://example.com:8080");
41+
request.addOAuthParameter(OAuthConstants.TIMESTAMP, "123456");
42+
request.addOAuthParameter(OAuthConstants.CONSUMER_KEY, "AS#$^*@&");
43+
request.addOAuthParameter(OAuthConstants.CALLBACK, "http://example/callback");
44+
request.addOAuthParameter(OAuthConstants.SIGNATURE, "OAuth-Signature");
45+
return request;
46+
}
47+
48+
public static OAuthRequest createSampleOAuthRequestPort443()
49+
{
50+
OAuthRequest request = new OAuthRequest(Verb.GET, "https://example.com:443");
51+
request.addOAuthParameter(OAuthConstants.TIMESTAMP, "123456");
52+
request.addOAuthParameter(OAuthConstants.CONSUMER_KEY, "AS#$^*@&");
53+
request.addOAuthParameter(OAuthConstants.CALLBACK, "http://example/callback");
54+
request.addOAuthParameter(OAuthConstants.SIGNATURE, "OAuth-Signature");
55+
return request;
56+
}
57+
58+
public static OAuthRequest createSampleOAuthRequestPort443_2()
59+
{
60+
OAuthRequest request = new OAuthRequest(Verb.GET, "https://example.com:443/test");
61+
request.addOAuthParameter(OAuthConstants.TIMESTAMP, "123456");
62+
request.addOAuthParameter(OAuthConstants.CONSUMER_KEY, "AS#$^*@&");
63+
request.addOAuthParameter(OAuthConstants.CALLBACK, "http://example/callback");
64+
request.addOAuthParameter(OAuthConstants.SIGNATURE, "OAuth-Signature");
65+
return request;
66+
}
1767
}

0 commit comments

Comments
 (0)