Skip to content

Commit f4b6ba3

Browse files
authored
Resolve VCSWP-21889 (#49)
* Fix for Signature Information class method bug * Implement seconds testing over milliseconds testing * Resolve dependabot alerts * Resolve dependabot alerts part 2
1 parent 3c318ff commit f4b6ba3

File tree

11 files changed

+44
-18
lines changed

11 files changed

+44
-18
lines changed

.github/workflows/gradle-build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ jobs:
3333
java-version: "17"
3434
distribution: "temurin"
3535
- name: Build with Gradle
36-
uses: gradle/gradle-build-action@v2
36+
uses: gradle/gradle-build-action@v2.4.2
3737
with:
3838
gradle-version: current
3939
arguments: --refresh-dependencies clean build --info

.github/workflows/gradle-publish.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,15 +34,15 @@ jobs:
3434
settings-path: ${{ github.workspace }} # location for the settings.xml file
3535

3636
- name: Build with Gradle
37-
uses: gradle/gradle-build-action@v2
37+
uses: gradle/gradle-build-action@v2.4.2
3838
with:
3939
gradle-version: current
4040
arguments: --refresh-dependencies clean build
4141

4242
# The USERNAME and TOKEN need to correspond to the credentials environment variables used in
4343
# the publishing section of your build.gradle
4444
- name: Publish to GitHub Packages
45-
uses: gradle/gradle-build-action@v2
45+
uses: gradle/gradle-build-action@v2.4.2
4646
with:
4747
arguments: publish
4848
env:

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,14 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
99

1010
None
1111

12+
<a name="5.5.4"></a>
13+
14+
## [5.5.4] - 2024-04-09
15+
16+
### Added
17+
18+
- Fix for Signature Information class method bug
19+
1220
<a name="5.5.3"></a>
1321

1422
## [5.5.3] - 2023-09-11

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ Add this dependency to your project's POM:
4040
<dependency>
4141
<groupId>com.github.freeclimbapi</groupId>
4242
<artifactId>freeclimb-java-client</artifactId>
43-
<version>5.5.3</version>
43+
<version>5.5.4</version>
4444
<scope>compile</scope>
4545
</dependency>
4646
```
@@ -56,7 +56,7 @@ Add this dependency to your project's build file:
5656
}
5757
5858
dependencies {
59-
implementation "com.github.freeclimbapi:freeclimb-java-client:5.5.3"
59+
implementation "com.github.freeclimbapi:freeclimb-java-client:5.5.4"
6060
implementation("com.squareup.okhttp3:okhttp:4.9.3")
6161
implementation("com.squareup.okhttp3:logging-interceptor:4.9.3")
6262
}
@@ -72,7 +72,7 @@ mvn clean package
7272

7373
Then manually install the following JARs:
7474

75-
* `target/freeclimb-java-client-5.5.3.jar`
75+
* `target/freeclimb-java-client-5.5.4.jar`
7676
* `target/lib/*.jar`
7777

7878
## Getting Started

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ apply plugin: 'java'
44
apply plugin: 'com.diffplug.spotless'
55

66
group = 'com.github.freeclimbapi'
7-
version = '5.5.3'
7+
version = '5.5.4'
88

99
buildscript {
1010
repositories {

build.sbt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ lazy val root = (project in file(".")).
22
settings(
33
organization := "com.github.freeclimbapi",
44
name := "freeclimb-java-client",
5-
version := "5.5.3",
5+
version := "5.5.4",
66
scalaVersion := "2.11.4",
77
scalacOptions ++= Seq("-feature"),
88
javacOptions in compile ++= Seq("-Xlint:deprecation"),

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<artifactId>freeclimb-java-client</artifactId>
66
<packaging>jar</packaging>
77
<name>freeclimb-java-client</name>
8-
<version>5.5.3</version>
8+
<version>5.5.4</version>
99
<url>https://github.com/freeclimbapi/java-sdk</url>
1010
<description>FreeClimb Java Client</description>
1111
<scm>

src/main/java/com/github/freeclimbapi/ApiClient.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ private void init() {
131131
json = new JSON();
132132

133133
// Set default User-Agent.
134-
setUserAgent("OpenAPI-Generator/5.5.3/java");
134+
setUserAgent("OpenAPI-Generator/5.5.4/java");
135135

136136
authentications = new HashMap<String, Authentication>();
137137
}

src/main/java/com/github/freeclimbapi/utils/SignatureInformation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public SignatureInformation(String requestHeader) {
3434

3535
public boolean isRequestTimeValid(Integer tolerance) {
3636
Integer currentUnixTimestamp = getCurrentUnixTime();
37-
return (requestTimestamp + tolerance) < currentUnixTimestamp;
37+
return currentUnixTimestamp < (requestTimestamp + tolerance);
3838
}
3939

4040
public boolean isSignatureSafe(String requestBody, String signingSecret)

src/test/java/com/github/freeclimbapi/RequestVerifierTest.java

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -146,24 +146,31 @@ public void checkToleranceTest3() {
146146
public void verifyToleranceTest() {
147147
String requestBody = "{\"accountId\":\"AC1334ffb694cd8d969f51cddf5f7c9b478546d50c\",\"callId\":\"CAccb0b00506553cda09b51c5477f672a49e0b2213\",\"callStatus\":\"ringing\",\"conferenceId\":null,\"direction\":\"inbound\",\"from\":\"+13121000109\",\"parentCallId\":null,\"queueId\":null,\"requestType\":\"inboundCall\",\"to\":\"+13121000096\"}";
148148
String signingSecret = "sigsec_ead6d3b6904196c60835d039e91b3341c77a7793";
149-
String requestHeader = "t=1900871395,v1=1d798c86e977ff734dec3a8b8d67fe8621dcc1df46ef4212e0bfe2e122b01bfd,v1=1ba18712726898fbbe48cd862dd096a709f7ad761a5bab14bda9ac24d963a6a8";
150-
Integer tolerance = 5 * 60;
151149
Integer currentTime = (int) (System.currentTimeMillis() / 1000L);
150+
Integer timeCalcuation = currentTime - (6 * 60);
151+
String requestHeader = "t=" + timeCalcuation.toString()
152+
+ ",v1=1d798c86e977ff734dec3a8b8d67fe8621dcc1df46ef4212e0bfe2e122b01bfd,v1=1ba18712726898fbbe48cd862dd096a709f7ad761a5bab14bda9ac24d963a6a8";
153+
Integer tolerance = 5 * 60;
154+
152155
RuntimeException exception = assertThrows(
153156
RuntimeException.class,
154157
() -> {
155158
RequestVerifier.verifyRequestSignature(requestBody, requestHeader, signingSecret, tolerance);
156159
});
157160

158-
assertEquals("Request time exceeded tolerance threshold. Request: 1900871395, CurrentTime: "
159-
+ Integer.toString(currentTime) + ", tolerance: " + tolerance, exception.getMessage());
161+
assertEquals(
162+
"Request time exceeded tolerance threshold. Request: " + timeCalcuation.toString() + ", CurrentTime: "
163+
+ Integer.toString(currentTime) + ", tolerance: " + tolerance,
164+
exception.getMessage());
160165
}
161166

162167
@Test
163168
public void verifySignatureTest() {
164169
String requestBody = "{\"accountId\":\"AC1334ffb694cd8d969f51cddf5f7c9b478546d50c\",\"callId\":\"CAccb0b00506553cda09b51c5477f672a49e0b2213\",\"callStatus\":\"ringing\",\"conferenceId\":null,\"direction\":\"inbound\",\"from\":\"+13121000109\",\"parentCallId\":null,\"queueId\":null,\"requestType\":\"inboundCall\",\"to\":\"+13121000096\"}";
165170
String signingSecret = "sigsec_ead6d3b6904196c60835d039e91b3341c77a7794";
166-
String requestHeader = "t=1679944186,v1=1d798c86e977ff734dec3a8b8d67fe8621dcc1df46ef4212e0bfe2e122b01bfd,v1=1ba18712726898fbbe48cd862dd096a709f7ad761a5bab14bda9ac24d963a6a8";
171+
Integer currentTime = (int) (System.currentTimeMillis() / 1000L);
172+
String requestHeader = "t=" + currentTime.toString()
173+
+ ",v1=1d798c86e977ff734dec3a8b8d67fe8621dcc1df46ef4212e0bfe2e122b01bfd,v1=1ba18712726898fbbe48cd862dd096a709f7ad761a5bab14bda9ac24d963a6a8";
167174
Integer tolerance = 5 * 60;
168175
RuntimeException exception = assertThrows(
169176
RuntimeException.class,
@@ -180,7 +187,7 @@ public void verifySignatureTest() {
180187
public void verifyRequestSignatureTest() throws NoSuchAlgorithmException, InvalidKeyException {
181188
String requestBody = "{\"accountId\":\"AC1334ffb694cd8d969f51cddf5f7c9b478546d50c\",\"callId\":\"CAccb0b00506553cda09b51c5477f672a49e0b2213\",\"callStatus\":\"ringing\",\"conferenceId\":null,\"direction\":\"inbound\",\"from\":\"+13121000109\",\"parentCallId\":null,\"queueId\":null,\"requestType\":\"inboundCall\",\"to\":\"+13121000096\"}";
182189
String signingSecret = "sigsec_ead6d3b6904196c60835d039e91b3341c77a7793";
183-
String requestHeader = "t=1679944186,v1=c3957749baf61df4b1506802579cc69a74c77a1ae21447b930e5a704f9ec4120,v1=1ba18712726898fbbe48cd862dd096a709f7ad761a5bab14bda9ac24d963a6a8";
190+
String requestHeader = "t=2130000000,v1=c3957749baf61df4b1506802579cc69a74c77a1ae21447b930e5a704f9ec4120,v1=6835006e70c9b9f610e8fb3a8b36b52b3f28c12d0a2dab75091c46ca7ec11b20";
184191
Integer tolerance = 5 * 60;
185192
RequestVerifier.verifyRequestSignature(requestBody, requestHeader, signingSecret, tolerance);
186193
}

0 commit comments

Comments
 (0)