Skip to content

Commit 575e190

Browse files
authored
Merge pull request #124 from CyberSource/future
Future
2 parents d7ea223 + 41717cb commit 575e190

File tree

21 files changed

+97
-55
lines changed

21 files changed

+97
-55
lines changed

.travis.yml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
language: java
2-
"dist": "precise"
2+
"dist": "trusty"
3+
34
jdk:
4-
- oraclejdk8
5-
- oraclejdk7
6-
- openjdk7
7-
- openjdk6
5+
- openjdk7
6+
- oraclejdk8

README.md

Lines changed: 14 additions & 1 deletion
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.6</version>
13+
<version>6.2.7</version>
1414
</dependency>
1515
```
1616
Run `mvn install` to install dependency
@@ -183,6 +183,19 @@ 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.7 (MAR,2019)
187+
_______________________________
188+
189+
1) Fixed security vulnerabilities found in the jar dependencies. 1)xmlsec 2)opensaml 3)bcprov
190+
xmlsec jar :-upgraded from version 1.4.3 to version 2.0.7
191+
opensaml jar :- Removed this jar as its not impacting our code base
192+
bcprov jar :- upgraded from version 1.54 to version 1.61
193+
194+
2) Fixed reseller issue. Now using keyfile password to store/load p12 certs.
195+
196+
197+
_______________________________
198+
186199
Version Cybersource-sdk-java 6.2.6 (MAY,2018)
187200
_______________________________
188201
1) Added certificateCacheEnabled optional feature. certificateCacheEnabled parameter is set to false (default is true), the p12 certificate of a merchant will be reloaded from filesystem every time a transaction is made.If the certificateCacheEnabled is true then only at the first time certificate of a merchant will loaded from filesystem.

java/pom.xml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@
188188
<dependency>
189189
<groupId>org.apache.santuario</groupId>
190190
<artifactId>xmlsec</artifactId>
191-
<version>1.4.3</version>
191+
<version>2.0.7</version>
192192
</dependency>
193193
<dependency>
194194
<groupId>commons-httpclient</groupId>
@@ -204,12 +204,18 @@
204204
<dependency>
205205
<groupId>org.bouncycastle</groupId>
206206
<artifactId>bcprov-jdk15on</artifactId>
207-
<version>1.54</version>
207+
<version>1.61</version>
208208
</dependency>
209209
<dependency>
210210
<groupId>org.apache.ws.security</groupId>
211211
<artifactId>wss4j</artifactId>
212212
<version>1.6.19</version>
213+
<exclusions>
214+
<exclusion>
215+
<groupId>org.opensaml</groupId>
216+
<artifactId>opensaml</artifactId>
217+
</exclusion>
218+
</exclusions>
213219
</dependency>
214220
<dependency>
215221
<groupId>org.apache.commons</groupId>

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

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,9 @@ public class Identity {
4040
private long lastModifiedDate;
4141

4242
private static final String SERVER_ALIAS = "CyberSource_SJC_US";
43-
43+
44+
private char[] pswd;
45+
4446
private Logger logger = null;
4547

4648
/**
@@ -122,11 +124,8 @@ public Identity(MerchantConfig merchantConfig,X509Certificate x509Certificate, P
122124
*/
123125

124126
public boolean isValid(File keyFile) {
125-
126127
boolean changeKeyFileStatus=(this.lastModifiedDate == keyFile.lastModified());
127-
128128
if (!changeKeyFileStatus) {
129-
130129
logger.log(Logger.LT_INFO, "Key file changed");
131130
logger.log(Logger.LT_INFO, "Timestamp of current key file:"+keyFile.lastModified());
132131
}
@@ -142,6 +141,7 @@ private void setUpMerchant() throws SignException {
142141
throw new SignException("Exception while obtaining private key from KeyStore with alias, '" + merchantConfig.getKeyAlias() + "'");
143142
}
144143
name = merchantConfig.getMerchantID();
144+
pswd = merchantConfig.getKeyPassword().toCharArray();
145145
serialNumber = subjectDNrray[1];
146146
keyAlias = "serialNumber=" + serialNumber + ",CN=" + name;
147147
} else {
@@ -197,8 +197,11 @@ public String getSerialNumber() {
197197

198198
return serialNumber;
199199
}
200-
201-
200+
201+
public char[] getPswd() {
202+
return pswd;
203+
}
204+
202205
public void setSerialNumber(String serialNumber) {
203206
this.serialNumber = serialNumber;
204207
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public void addIdentityToKeyStore(Identity id, Logger logger) throws SignEncrypt
2626
try {
2727
if (privateKey != null) {
2828
X509Certificate[] certChain = {certificate};
29-
getKeyStore().setKeyEntry(id.getKeyAlias(), privateKey, id.getName().toCharArray(), certChain);
29+
getKeyStore().setKeyEntry(id.getKeyAlias(), privateKey, id.getPswd(), certChain);
3030
} else {
3131
getKeyStore().setCertificateEntry(id.getKeyAlias(), certificate);
3232
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ private Utility() {
4848
/**
4949
* Version number of this release.
5050
*/
51-
public static final String VERSION = "6.2.6";
51+
public static final String VERSION = "6.2.7";
5252

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

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public void setUp() throws Exception {
3030
}
3131

3232
@Test
33-
public void testSetUpMerchant() throws InstantiationException, IllegalAccessException, SignException, ConfigException{
33+
public void testSetUpMerchant() throws SignException, ConfigException{
3434
File p12file = Mockito.mock(File.class);
3535
MerchantConfig mc = Mockito.mock(MerchantConfig.class);
3636

@@ -43,9 +43,11 @@ public void testSetUpMerchant() throws InstantiationException, IllegalAccessExce
4343
Mockito.when(principal.getName()).thenReturn(keyAlias);
4444

4545
Mockito.when(mc.getKeyFile()).thenReturn(p12file);
46+
Mockito.when(mc.getKeyPassword()).thenReturn("testPwd");
4647
Identity identity = new Identity(mc,x509Cert,pkey,logger);
4748
assertEquals(identity.getName(), mc.getMerchantID());
4849
assertEquals(identity.getSerialNumber(), "400000009910179089277");
50+
assertEquals(String.valueOf(identity.getPswd()), "testPwd");
4951
assertNotNull(identity.getPrivateKey());
5052
}
5153

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,13 +163,20 @@ public void testMerchantIdentityToKeyStore() throws Exception{
163163

164164
Mockito.when(identity.getPrivateKey()).thenReturn(newPkay);
165165
Mockito.when(identity.getX509Cert()).thenReturn(x509Cert);
166-
Mockito.when(identity.getName()).thenReturn("MahenCertTest");
167166
Mockito.when(identity.getKeyAlias()).thenReturn("MahenCertTest");
167+
Mockito.when(identity.getPswd()).thenReturn("testPwd".toCharArray());
168168

169169
MessageHandlerKeyStore mhKeyStore= new MessageHandlerKeyStore();
170+
170171
MessageHandlerKeyStore spyMhKeyStore = Mockito.spy(mhKeyStore);
171172
Mockito.when(spyMhKeyStore.getKeyStore()).thenReturn(myKeystore);
172173
spyMhKeyStore.addIdentityToKeyStore(identity,logger);
174+
175+
Mockito.verify(identity,times(1)).getKeyAlias();
176+
Mockito.verify(identity,times(1)).getPrivateKey();
177+
Mockito.verify(identity,times(1)).getPswd();
178+
Mockito.verify(identity,times(1)).getX509Cert();
179+
173180
}
174181

175182
@Test

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public class UtilityTest extends BaseTest {
1616

1717
@Before
1818
public void setUp() {
19-
URL fileUrl = Thread.currentThread().getContextClassLoader().getResource("test_cybs.properties");
19+
URL fileUrl = Thread.currentThread().getContextClassLoader().getResource("test_cybs.properties");
2020
String filepath = "";
2121
if(fileUrl != null) {
2222
propertiesFilename = fileUrl.getFile();

pom.xml

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,6 @@
44
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
55

66
<modelVersion>4.0.0</modelVersion>
7-
8-
<name>cybersource-sdk-java-master</name>
9-
10-
<modules>
11-
<module>zip</module>
12-
<module>java</module>
13-
</modules>
14-
15-
<packaging>pom</packaging>
16-
177
<parent>
188
<groupId>org.sonatype.oss</groupId>
199
<artifactId>oss-parent</artifactId>
@@ -22,7 +12,12 @@
2212

2313
<groupId>com.cybersource</groupId>
2414
<artifactId>cybersource-sdk-master</artifactId>
25-
<version>6.2.7</version>
26-
15+
<version>6.2.7-SNAPSHOT</version>
16+
<name>cybersource-sdk-java-master</name>
17+
<packaging>pom</packaging>
2718

19+
<modules>
20+
<module>zip</module>
21+
<module>java</module>
22+
</modules>
2823
</project>

0 commit comments

Comments
 (0)