diff --git a/.github/workflows/coverity-analysis.yml b/.github/workflows/coverity-analysis.yml
index f8035d46..0abc68b1 100644
--- a/.github/workflows/coverity-analysis.yml
+++ b/.github/workflows/coverity-analysis.yml
@@ -20,14 +20,14 @@ jobs:
- uses: actions/setup-java@v4
with:
distribution: zulu
- java-version: 11
+ java-version: 17
- name: Cache Maven packages
uses: actions/cache@v4
with:
path: ~/.m2
- key: ${{ runner.os }}-m2-v8-${{ hashFiles('**/pom.xml') }}
- restore-keys: ${{ runner.os }}-m2-v8
+ key: ${{ runner.os }}-m2-v17-${{ hashFiles('**/pom.xml') }}
+ restore-keys: ${{ runner.os }}-m2-v17
- name: Download Coverity Build Tool
run: |
diff --git a/.github/workflows/maven-build-example.yml b/.github/workflows/maven-build-example.yml
index 3893cbd4..8514898d 100644
--- a/.github/workflows/maven-build-example.yml
+++ b/.github/workflows/maven-build-example.yml
@@ -33,9 +33,9 @@ jobs:
key: ${{ runner.os }}-m2-v17-${{ secrets.CACHE_VERSION }}-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2-v17-${{ secrets.CACHE_VERSION }}
- - name: Build
- run: mvn --batch-mode compile
+ - name: Install current state of web-eid-authtoken-validation-java locally for web-eid-springboot-example build
+ working-directory: .
+ run: mvn --batch-mode install
- name: Test and package
run: mvn --batch-mode package
-
diff --git a/.github/workflows/maven-build.yml b/.github/workflows/maven-build.yml
index 6528af68..e4a18157 100644
--- a/.github/workflows/maven-build.yml
+++ b/.github/workflows/maven-build.yml
@@ -20,14 +20,14 @@ jobs:
- uses: actions/setup-java@v4
with:
distribution: zulu
- java-version: 11
+ java-version: 17
- name: Cache Maven packages
uses: actions/cache@v4
with:
path: ~/.m2
- key: ${{ runner.os }}-m2-v8-${{ hashFiles('**/pom.xml') }}
- restore-keys: ${{ runner.os }}-m2-v8
+ key: ${{ runner.os }}-m2-v17-${{ hashFiles('**/pom.xml') }}
+ restore-keys: ${{ runner.os }}-m2-v17
- name: Build
run: mvn --batch-mode compile
diff --git a/.github/workflows/maven-deploy.yml b/.github/workflows/maven-deploy.yml
index 29a316f5..f8aa4048 100644
--- a/.github/workflows/maven-deploy.yml
+++ b/.github/workflows/maven-deploy.yml
@@ -14,14 +14,14 @@ jobs:
- uses: actions/setup-java@v4
with:
distribution: zulu
- java-version: 11
+ java-version: 17
- name: Cache Maven packages
uses: actions/cache@v4
with:
path: ~/.m2
- key: ${{ runner.os }}-m2-v8-${{ hashFiles('**/pom.xml') }}
- restore-keys: ${{ runner.os }}-m2-v8
+ key: ${{ runner.os }}-m2-v17-${{ hashFiles('**/pom.xml') }}
+ restore-keys: ${{ runner.os }}-m2-v17
- name: Deploy to GitLab Package Repository # GitHub Packages
env:
diff --git a/.github/workflows/sonarcloud-analysis.yml b/.github/workflows/sonarcloud-analysis.yml
index ea78e973..52da39ce 100644
--- a/.github/workflows/sonarcloud-analysis.yml
+++ b/.github/workflows/sonarcloud-analysis.yml
@@ -35,7 +35,7 @@ jobs:
uses: actions/cache@v4
with:
path: ~/.m2
- key: ${{ runner.os }}-m2-v11-${{ hashFiles('**/pom.xml') }}
+ key: ${{ runner.os }}-m2-v17-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2-v17
- name: Build and analyze
env:
diff --git a/example/pom.xml b/example/pom.xml
index b50adcec..88c593be 100644
--- a/example/pom.xml
+++ b/example/pom.xml
@@ -5,7 +5,7 @@
org.springframework.boot
spring-boot-starter-parent
- 3.5.3
+ 4.0.6
eu.webeid.example
diff --git a/example/src/main/java/eu/webeid/example/config/SameSiteCookieConfiguration.java b/example/src/main/java/eu/webeid/example/config/SameSiteCookieConfiguration.java
index 74602523..74af4842 100644
--- a/example/src/main/java/eu/webeid/example/config/SameSiteCookieConfiguration.java
+++ b/example/src/main/java/eu/webeid/example/config/SameSiteCookieConfiguration.java
@@ -23,7 +23,7 @@
package eu.webeid.example.config;
import org.apache.tomcat.util.http.Rfc6265CookieProcessor;
-import org.springframework.boot.web.embedded.tomcat.TomcatContextCustomizer;
+import org.springframework.boot.tomcat.TomcatContextCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
diff --git a/example/src/main/java/eu/webeid/example/security/WebEidAjaxLoginProcessingFilter.java b/example/src/main/java/eu/webeid/example/security/WebEidAjaxLoginProcessingFilter.java
index 4782ee93..485dba10 100644
--- a/example/src/main/java/eu/webeid/example/security/WebEidAjaxLoginProcessingFilter.java
+++ b/example/src/main/java/eu/webeid/example/security/WebEidAjaxLoginProcessingFilter.java
@@ -22,8 +22,8 @@
package eu.webeid.example.security;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.ObjectReader;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.databind.ObjectReader;
import eu.webeid.example.security.ajax.AjaxAuthenticationFailureHandler;
import eu.webeid.example.security.ajax.AjaxAuthenticationSuccessHandler;
import eu.webeid.example.security.dto.AuthTokenDTO;
diff --git a/example/src/main/java/eu/webeid/example/security/ajax/AjaxAuthenticationSuccessHandler.java b/example/src/main/java/eu/webeid/example/security/ajax/AjaxAuthenticationSuccessHandler.java
index a5ea20d0..2b610463 100644
--- a/example/src/main/java/eu/webeid/example/security/ajax/AjaxAuthenticationSuccessHandler.java
+++ b/example/src/main/java/eu/webeid/example/security/ajax/AjaxAuthenticationSuccessHandler.java
@@ -23,9 +23,8 @@
package eu.webeid.example.security.ajax;
import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.ObjectWriter;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.databind.ObjectWriter;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
@@ -70,7 +69,7 @@ public static class AuthSuccessDTO {
@JsonProperty("auth")
private String auth;
- public static String asJson(Authentication authentication) throws JsonProcessingException {
+ public static String asJson(Authentication authentication) {
final AuthSuccessDTO dto = new AuthSuccessDTO();
dto.sub = authentication.getName();
dto.auth = authentication.getAuthorities().toString();
diff --git a/example/src/test/java/eu/webeid/example/WebApplicationTest.java b/example/src/test/java/eu/webeid/example/WebApplicationTest.java
index f7f5a3de..b6d5d56c 100644
--- a/example/src/test/java/eu/webeid/example/WebApplicationTest.java
+++ b/example/src/test/java/eu/webeid/example/WebApplicationTest.java
@@ -110,7 +110,7 @@ public void validateOcspResponse(XadesSignature xadesSignature) {
MvcResult result = HttpHelper.login(mvcBuilder, session, ObjectMother.mockAuthToken());
session = (MockHttpSession) result.getRequest().getSession();
MockHttpServletResponse response = result.getResponse();
- assertEquals("{\"sub\":\"JAAK-KRISTJAN JÕEORG\",\"auth\":\"[ROLE_USER]\"}", response.getContentAsString());
+ assertEquals("{\"auth\":\"[ROLE_USER]\",\"sub\":\"JAAK-KRISTJAN JÕEORG\"}", response.getContentAsString());
/* Example how to test file upload.
response = HttpHelper.upload(mvcBuilder, session, mockMultipartFile());
diff --git a/example/src/test/java/eu/webeid/example/testutil/ObjectMother.java b/example/src/test/java/eu/webeid/example/testutil/ObjectMother.java
index 288b1368..91003f2d 100644
--- a/example/src/test/java/eu/webeid/example/testutil/ObjectMother.java
+++ b/example/src/test/java/eu/webeid/example/testutil/ObjectMother.java
@@ -22,8 +22,7 @@
package eu.webeid.example.testutil;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import tools.jackson.databind.ObjectMapper;
import eu.webeid.example.service.dto.SignatureAlgorithmDTO;
import eu.webeid.security.authtoken.WebEidAuthToken;
import org.apache.commons.lang3.ArrayUtils;
@@ -50,17 +49,13 @@ public class ObjectMother {
private static final WebEidAuthToken VALID_AUTH_TOKEN;
static {
- try {
- VALID_AUTH_TOKEN = MAPPER.readValue(
- "{\"algorithm\":\"ES384\"," +
- "\"unverifiedCertificate\":\"MIIEBDCCA2WgAwIBAgIQY5OGshxoPMFg+Wfc0gFEaTAKBggqhkjOPQQDBDBgMQswCQYDVQQGEwJFRTEbMBkGA1UECgwSU0sgSUQgU29sdXRpb25zIEFTMRcwFQYDVQRhDA5OVFJFRS0xMDc0NzAxMzEbMBkGA1UEAwwSVEVTVCBvZiBFU1RFSUQyMDE4MB4XDTIxMDcyMjEyNDMwOFoXDTI2MDcwOTIxNTk1OVowfzELMAkGA1UEBhMCRUUxKjAoBgNVBAMMIUrDlUVPUkcsSkFBSy1LUklTVEpBTiwzODAwMTA4NTcxODEQMA4GA1UEBAwHSsOVRU9SRzEWMBQGA1UEKgwNSkFBSy1LUklTVEpBTjEaMBgGA1UEBRMRUE5PRUUtMzgwMDEwODU3MTgwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQmwEKsJTjaMHSaZj19hb9EJaJlwbKc5VFzmlGMFSJVk4dDy+eUxa5KOA7tWXqzcmhh5SYdv+MxcaQKlKWLMa36pfgv20FpEDb03GCtLqjLTRZ7649PugAQ5EmAqIic29CjggHDMIIBvzAJBgNVHRMEAjAAMA4GA1UdDwEB/wQEAwIDiDBHBgNVHSAEQDA+MDIGCysGAQQBg5EhAQIBMCMwIQYIKwYBBQUHAgEWFWh0dHBzOi8vd3d3LnNrLmVlL0NQUzAIBgYEAI96AQIwHwYDVR0RBBgwFoEUMzgwMDEwODU3MThAZWVzdGkuZWUwHQYDVR0OBBYEFPlp/ceABC52itoqppEmbf71TJz6MGEGCCsGAQUFBwEDBFUwUzBRBgYEAI5GAQUwRzBFFj9odHRwczovL3NrLmVlL2VuL3JlcG9zaXRvcnkvY29uZGl0aW9ucy1mb3ItdXNlLW9mLWNlcnRpZmljYXRlcy8TAkVOMCAGA1UdJQEB/wQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDAfBgNVHSMEGDAWgBTAhJkpxE6fOwI09pnhClYACCk+ezBzBggrBgEFBQcBAQRnMGUwLAYIKwYBBQUHMAGGIGh0dHA6Ly9haWEuZGVtby5zay5lZS9lc3RlaWQyMDE4MDUGCCsGAQUFBzAChilodHRwOi8vYy5zay5lZS9UZXN0X29mX0VTVEVJRDIwMTguZGVyLmNydDAKBggqhkjOPQQDBAOBjAAwgYgCQgDCAgybz0u3W+tGI+AX+PiI5CrE9ptEHO5eezR1Jo4j7iGaO0i39xTGUB+NSC7P6AQbyE/ywqJjA1a62jTLcS9GHAJCARxN4NO4eVdWU3zVohCXm8WN3DWA7XUcn9TZiLGQ29P4xfQZOXJi/z4PNRRsR4plvSNB3dfyBvZn31HhC7my8woi\"," +
- "\"appVersion\":\"https://web-eid.eu/web-eid-app/releases/2.5.0+0\"," +
- "\"signature\":\"0Ov7ME6pTY1K2GXMj8Wxov/o2fGIMEds8OMY5dKdkB0nrqQX7fG1E5mnsbvyHpMDecMUH6Yg+p1HXdgB/lLqOcFZjt/OVXPjAAApC5d1YgRYATDcxsR1zqQwiNcHdmWn\"," +
- "\"format\":\"web-eid:1.0\"}",
- WebEidAuthToken.class);
- } catch (JsonProcessingException e) {
- throw new RuntimeException("Token parsing failed");
- }
+ VALID_AUTH_TOKEN = MAPPER.readValue(
+ "{\"algorithm\":\"ES384\"," +
+ "\"unverifiedCertificate\":\"MIIEBDCCA2WgAwIBAgIQY5OGshxoPMFg+Wfc0gFEaTAKBggqhkjOPQQDBDBgMQswCQYDVQQGEwJFRTEbMBkGA1UECgwSU0sgSUQgU29sdXRpb25zIEFTMRcwFQYDVQRhDA5OVFJFRS0xMDc0NzAxMzEbMBkGA1UEAwwSVEVTVCBvZiBFU1RFSUQyMDE4MB4XDTIxMDcyMjEyNDMwOFoXDTI2MDcwOTIxNTk1OVowfzELMAkGA1UEBhMCRUUxKjAoBgNVBAMMIUrDlUVPUkcsSkFBSy1LUklTVEpBTiwzODAwMTA4NTcxODEQMA4GA1UEBAwHSsOVRU9SRzEWMBQGA1UEKgwNSkFBSy1LUklTVEpBTjEaMBgGA1UEBRMRUE5PRUUtMzgwMDEwODU3MTgwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQmwEKsJTjaMHSaZj19hb9EJaJlwbKc5VFzmlGMFSJVk4dDy+eUxa5KOA7tWXqzcmhh5SYdv+MxcaQKlKWLMa36pfgv20FpEDb03GCtLqjLTRZ7649PugAQ5EmAqIic29CjggHDMIIBvzAJBgNVHRMEAjAAMA4GA1UdDwEB/wQEAwIDiDBHBgNVHSAEQDA+MDIGCysGAQQBg5EhAQIBMCMwIQYIKwYBBQUHAgEWFWh0dHBzOi8vd3d3LnNrLmVlL0NQUzAIBgYEAI96AQIwHwYDVR0RBBgwFoEUMzgwMDEwODU3MThAZWVzdGkuZWUwHQYDVR0OBBYEFPlp/ceABC52itoqppEmbf71TJz6MGEGCCsGAQUFBwEDBFUwUzBRBgYEAI5GAQUwRzBFFj9odHRwczovL3NrLmVlL2VuL3JlcG9zaXRvcnkvY29uZGl0aW9ucy1mb3ItdXNlLW9mLWNlcnRpZmljYXRlcy8TAkVOMCAGA1UdJQEB/wQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDAfBgNVHSMEGDAWgBTAhJkpxE6fOwI09pnhClYACCk+ezBzBggrBgEFBQcBAQRnMGUwLAYIKwYBBQUHMAGGIGh0dHA6Ly9haWEuZGVtby5zay5lZS9lc3RlaWQyMDE4MDUGCCsGAQUFBzAChilodHRwOi8vYy5zay5lZS9UZXN0X29mX0VTVEVJRDIwMTguZGVyLmNydDAKBggqhkjOPQQDBAOBjAAwgYgCQgDCAgybz0u3W+tGI+AX+PiI5CrE9ptEHO5eezR1Jo4j7iGaO0i39xTGUB+NSC7P6AQbyE/ywqJjA1a62jTLcS9GHAJCARxN4NO4eVdWU3zVohCXm8WN3DWA7XUcn9TZiLGQ29P4xfQZOXJi/z4PNRRsR4plvSNB3dfyBvZn31HhC7my8woi\"," +
+ "\"appVersion\":\"https://web-eid.eu/web-eid-app/releases/2.5.0+0\"," +
+ "\"signature\":\"0Ov7ME6pTY1K2GXMj8Wxov/o2fGIMEds8OMY5dKdkB0nrqQX7fG1E5mnsbvyHpMDecMUH6Yg+p1HXdgB/lLqOcFZjt/OVXPjAAApC5d1YgRYATDcxsR1zqQwiNcHdmWn\"," +
+ "\"format\":\"web-eid:1.0\"}",
+ WebEidAuthToken.class);
}
public static final String VALID_CHALLENGE_NONCE = "12345678123456781234567812345678912356789123";
@@ -71,7 +66,7 @@ public static AuthTokenDTO mockAuthToken() {
return authToken;
}
- public static String toJson(Object object) throws JsonProcessingException {
+ public static String toJson(Object object) {
return MAPPER.writeValueAsString(object);
}
@@ -89,7 +84,7 @@ public static String mockSignatureInBase64(String digestToSign) {
return signDigest(DatatypeConverter.parseBase64Binary(digestToSign));
}
- public static T jsonStringToBean(String jsonString, Class valueType) throws JsonProcessingException {
+ public static T jsonStringToBean(String jsonString, Class valueType) {
return MAPPER.readValue(jsonString, valueType);
}
diff --git a/pom.xml b/pom.xml
index 2816da7c..31e373bd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -14,7 +14,7 @@
11
0.12.6
1.81
- 2.19.1
+ 3.1.3
2.0.17
5.13.3
3.27.3
@@ -46,7 +46,7 @@
${jjwt.version}
- com.fasterxml.jackson.core
+ tools.jackson.core
jackson-databind
${jackson.version}
diff --git a/src/main/java/eu/webeid/security/validator/AuthTokenValidatorImpl.java b/src/main/java/eu/webeid/security/validator/AuthTokenValidatorImpl.java
index 14cf3e78..bf360e8a 100644
--- a/src/main/java/eu/webeid/security/validator/AuthTokenValidatorImpl.java
+++ b/src/main/java/eu/webeid/security/validator/AuthTokenValidatorImpl.java
@@ -22,8 +22,9 @@
package eu.webeid.security.validator;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.ObjectReader;
+import tools.jackson.core.JacksonException;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.databind.ObjectReader;
import eu.webeid.security.authtoken.WebEidAuthToken;
import eu.webeid.security.certificate.CertificateLoader;
import eu.webeid.security.certificate.CertificateValidator;
@@ -140,7 +141,7 @@ private WebEidAuthToken parseToken(String authToken) throws AuthTokenParseExcept
throw new AuthTokenParseException("Web eID authentication token is null");
}
return token;
- } catch (IOException e) {
+ } catch (JacksonException e) {
throw new AuthTokenParseException("Error parsing Web eID authentication token", e);
}
}
diff --git a/src/test/java/eu/webeid/security/testutil/DateMocker.java b/src/test/java/eu/webeid/security/testutil/DateMocker.java
index ec49a049..f0be8c84 100644
--- a/src/test/java/eu/webeid/security/testutil/DateMocker.java
+++ b/src/test/java/eu/webeid/security/testutil/DateMocker.java
@@ -22,7 +22,7 @@
package eu.webeid.security.testutil;
-import com.fasterxml.jackson.databind.util.StdDateFormat;
+import tools.jackson.databind.util.StdDateFormat;
import eu.webeid.security.util.DateAndTime;
import io.jsonwebtoken.Clock;
import org.mockito.MockedStatic;
diff --git a/src/test/java/eu/webeid/security/validator/AuthTokenCertificateTest.java b/src/test/java/eu/webeid/security/validator/AuthTokenCertificateTest.java
index 14ed0666..50779cd4 100644
--- a/src/test/java/eu/webeid/security/validator/AuthTokenCertificateTest.java
+++ b/src/test/java/eu/webeid/security/validator/AuthTokenCertificateTest.java
@@ -22,7 +22,7 @@
package eu.webeid.security.validator;
-import com.fasterxml.jackson.databind.exc.MismatchedInputException;
+import tools.jackson.databind.exc.MismatchedInputException;
import eu.webeid.security.authtoken.WebEidAuthToken;
import eu.webeid.security.exceptions.AuthTokenException;
import eu.webeid.security.exceptions.AuthTokenParseException;
diff --git a/src/test/java/eu/webeid/security/validator/AuthTokenSignatureValidatorTest.java b/src/test/java/eu/webeid/security/validator/AuthTokenSignatureValidatorTest.java
index fc7edd0c..b4b84195 100644
--- a/src/test/java/eu/webeid/security/validator/AuthTokenSignatureValidatorTest.java
+++ b/src/test/java/eu/webeid/security/validator/AuthTokenSignatureValidatorTest.java
@@ -22,8 +22,8 @@
package eu.webeid.security.validator;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.ObjectReader;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.databind.ObjectReader;
import eu.webeid.security.certificate.CertificateLoader;
import org.junit.jupiter.api.Test;
import eu.webeid.security.authtoken.WebEidAuthToken;