Skip to content

Commit 266a4ac

Browse files
authored
Merge pull request #129 from DivyaDosibhatla/future
Added Request and Response headers
2 parents ed521ee + 3249f9c commit 266a4ac

15 files changed

Lines changed: 89 additions & 24 deletions

File tree

README.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ To install the `cybersource-sdk-java` from central repository, add dependency to
1010
<dependency>
1111
<groupId>com.cybersource</groupId>
1212
<artifactId>cybersource-sdk-java</artifactId>
13-
<version>6.2.7</version>
13+
<version>6.2.8</version>
1414
</dependency>
1515
```
1616
Run `mvn install` to install dependency
@@ -19,7 +19,7 @@ Run `mvn install` to install dependency
1919
Add the dependency to your build.gradle
2020
```java
2121
dependencies {
22-
compile 'com.cybersource:cybersource-sdk-java:6.2.6'
22+
compile 'com.cybersource:cybersource-sdk-java:6.2.8'
2323
}
2424
```
2525
## Requirements
@@ -183,6 +183,11 @@ Retry Pattern allows to retry sending a failed request and it will only work wit
183183

184184
## Changes
185185

186+
Version Cybersource-sdk-java 6.2.8 (SEPT,2019)
187+
_______________________________
188+
189+
1)Added request header and logged request and response headers
190+
186191
Version Cybersource-sdk-java 6.2.7 (MAR,2019)
187192
_______________________________
188193
1) Fixed security vulnerabilities found in the jar dependencies.

java/src/main/java/com/cybersource/ws/client/Connection.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,9 +124,8 @@ private void checkForFault()
124124
throws FaultException, ClientException {
125125
try {
126126
logger.log(Logger.LT_INFO, "Reading response...");
127-
128127
int responseCode = getHttpResponseCode();
129-
128+
logResponseHeaders();
130129
// if successful, there's nothing left to do here.
131130
// we'll process the response in a later method.
132131
if (responseCode == HttpURLConnection.HTTP_OK) return;
@@ -214,7 +213,15 @@ static ByteArrayOutputStream makeStream(Document doc)
214213

215214
return baos;
216215
}
216+
/*
217+
* Log Request and Response Headers
218+
*
219+
*/
220+
221+
abstract public void logRequestHeaders();
222+
abstract public void logResponseHeaders();
217223
}
218224

225+
219226
/* Copyright 2006 CyberSource Corporation */
220227

java/src/main/java/com/cybersource/ws/client/HttpClientConnection.java

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
import org.apache.commons.httpclient.params.HttpConnectionManagerParams;
2727
import org.apache.commons.httpclient.params.HttpMethodParams;
2828
import org.w3c.dom.Document;
29-
3029
import javax.xml.parsers.DocumentBuilder;
3130
import javax.xml.transform.TransformerConfigurationException;
3231
import javax.xml.transform.TransformerException;
@@ -37,7 +36,10 @@
3736
import java.net.ProtocolException;
3837
import java.util.ArrayList;
3938
import java.util.List;
40-
39+
import java.util.List;
40+
import org.apache.commons.httpclient.Header;
41+
import java.util.ArrayList;
42+
import java.util.Arrays;
4143
/**
4244
* Class helps in posting the Request document for the Transaction using HttpClient.
4345
* Converts the document to String format and also helps in setting up the Proxy connections.
@@ -81,7 +83,8 @@ void postDocument(Document request)
8183

8284
postMethod.setRequestEntity(
8385
new StringRequestEntity(requestString, null, "UTF-8"));
84-
86+
postMethod.setRequestHeader(Utility.ORIGIN_TIMESTAMP, String.valueOf(System.currentTimeMillis()));
87+
logRequestHeaders();
8588
httpClient.executeMethod(postMethod);
8689
}
8790

@@ -231,6 +234,19 @@ public boolean retryMethod(
231234
return false;
232235
}
233236
}
237+
238+
@Override
239+
public void logRequestHeaders() {
240+
List<Header> reqheaders=Arrays.asList(postMethod.getRequestHeaders());
241+
logger.log(Logger.LT_INFO, "Request Headers: " +reqheaders);
242+
}
243+
244+
@Override
245+
public void logResponseHeaders() {
246+
List<Header> respheaders=Arrays.asList(postMethod.getResponseHeaders());
247+
logger.log(Logger.LT_INFO, "Response Headers"+ respheaders);
248+
}
249+
234250
}
235251

236252
/* Copyright 2006 CyberSource Corporation */

java/src/main/java/com/cybersource/ws/client/JDKHttpURLConnection.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@
3131
import java.net.MalformedURLException;
3232
import java.net.ProtocolException;
3333
import java.net.URL;
34+
import java.util.HashMap;
35+
import java.util.List;
36+
import java.util.Map;
37+
import java.util.Map.Entry;
3438

3539

3640
/**
@@ -57,6 +61,8 @@ void postDocument(Document request)
5761
URL url = new URL(serverURL);
5862

5963
con = ConnectionHelper.openConnection(url, mc);
64+
con.setRequestProperty(Utility.ORIGIN_TIMESTAMP, String.valueOf(System.currentTimeMillis()));
65+
logRequestHeaders();
6066
con.setRequestMethod("POST");
6167
con.setDoOutput(true);
6268
ConnectionHelper.setTimeout(con, mc.getTimeout());
@@ -130,6 +136,21 @@ private static byte[] documentToByteArray(Document doc)
130136
}
131137
}
132138
}
139+
140+
@Override
141+
public void logResponseHeaders() {
142+
if(con!=null) {
143+
logger.log(Logger.LT_INFO, "Response headers : "+con.getHeaderFields());
144+
}
145+
}
146+
147+
148+
@Override
149+
public void logRequestHeaders() {
150+
if(con!=null) {
151+
logger.log(Logger.LT_INFO, "Request Headers : "+con.getRequestProperties());
152+
}
153+
}
133154
}
134155

135156
/* Copyright 2006 CyberSource Corporation */

java/src/main/java/com/cybersource/ws/client/Utility.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ private Utility() {
4848
/**
4949
* Version number of this release.
5050
*/
51-
public static final String VERSION = "6.2.7";
51+
public static final String VERSION = "6.2.8";
52+
public static final String ORIGIN_TIMESTAMP = "v-c-origin-ia";
5253

5354
/**
5455
* If in the Request map, a key called "_has_escapes" is present and is set

java/src/test/java/com/cybersource/ws/client/CustomHttpConnectionClass.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,16 @@ public boolean retryMethod(
182182
return false;
183183
}
184184
}
185+
186+
@Override
187+
public void logResponseHeaders() {
188+
189+
}
190+
191+
192+
@Override
193+
public void logRequestHeaders() {
185194

195+
}
186196
}
187197

samples/nvp/compileSample.bat

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22

33
set LOCAL_CP=
44
rem ----------------------------------------------------------------------------
5-
rem Replace this with cybersource-sdk-java-6.2.7.jar when using Java SDK 1.6 or later.
5+
rem Replace this with cybersource-sdk-java-6.2.8.jar when using Java SDK 1.6 or later.
66
rem If using this scripts outside zip package then give maven clean install.
77
rem This will generate all required dependencies under target/dependencies.These dependencies are used in CLASSPATH.
88
rem ----------------------------------------------------------------------------
99

10-
if exist ../../lib set LOCAL_CP=%LOCAL_CP%;../../lib/cybersource-sdk-java-6.2.7.jar
10+
if exist ../../lib set LOCAL_CP=%LOCAL_CP%;../../lib/cybersource-sdk-java-6.2.8.jar
1111
if not exist ../../lib (
1212
if not exist target goto error
13-
set LOCAL_CP=%LOCAL_CP%;target/dependencies/cybersource-sdk-java-6.2.7.jar
13+
set LOCAL_CP=%LOCAL_CP%;target/dependencies/cybersource-sdk-java-6.2.8.jar
1414
)
1515

1616
if not exist classes mkdir classes

samples/nvp/compileSample.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22

33
LOCAL_CP=
44
# -----------------------------------------------------------------------------
5-
# Replace this with cybersource-sdk-java-6.2.7.jar when using Java SDK 1.6 or later.
5+
# Replace this with cybersource-sdk-java-6.2.8.jar when using Java SDK 1.6 or later.
66
# If using this scripts outside zip package then give maven clean install.
77
# This will generate all required dependencies under target/dependencies.These dependencies are used in CLASSPATH.
88
# -----------------------------------------------------------------------------
99

1010
if test -d ../../lib
11-
then LOCAL_CP=$LOCAL_CP:../../lib/cybersource-sdk-java-6.2.7.jar
11+
then LOCAL_CP=$LOCAL_CP:../../lib/cybersource-sdk-java-6.2.8.jar
1212
fi
1313

1414
if test ! -d ../../lib
@@ -19,7 +19,7 @@ then
1919
echo "Execute maven clean install , This will generate all required dependencies under target/dependencies!!"
2020
exit 1
2121
fi
22-
LOCAL_CP=$LOCAL_CP:target/dependencies/cybersource-sdk-java-6.2.7.jar
22+
LOCAL_CP=$LOCAL_CP:target/dependencies/cybersource-sdk-java-6.2.8.jar
2323
fi
2424

2525
if test ! -d ./classes

samples/nvp/runSample.bat

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ set LOCAL_CP=
44
set LOCAL_CP=%LOCAL_CP%;classes
55

66
rem ----------------------------------------------------------------------------
7-
rem Replace cybersource-sdk-java-6.2.7.jar when using Java SDK 1.6 or later.
7+
rem Replace cybersource-sdk-java-6.2.8.jar when using Java SDK 1.6 or later.
88
rem If using this scripts outside zip package then give maven clean install.
99
rem This will generate all required dependencies under target/dependencies.These dependencies are used in CLASSPATH.
1010
rem ----------------------------------------------------------------------------

samples/nvp/runSample.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ LOCAL_CP=
44
LOCAL_CP=$LOCAL_CP:./classes
55

66
# -----------------------------------------------------------------------------
7-
# Replace this with cybersource-sdk-java-6.2.7.jar when using Java SDK 1.6 or later.
7+
# Replace this with cybersource-sdk-java-6.2.8.jar when using Java SDK 1.6 or later.
88
# If using this scripts outside zip package then give maven clean install.
99
# This will generate all required dependencies under target/dependencies.These dependencies are used in CLASSPATH.
1010
# -----------------------------------------------------------------------------

0 commit comments

Comments
 (0)