summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas <>2022-08-18 08:55:25 +0200
committerThomas <>2022-08-18 08:55:25 +0200
commit5efc2e4f31e3456e68ac19fe21352ac501302bf4 (patch)
tree66c1ac717d3763647cfb7623d68109be56b06edb
parentd0309843cf6775c215bb132283116b6442b082d6 (diff)
downloadEAAF-Components-5efc2e4f31e3456e68ac19fe21352ac501302bf4.tar.gz
EAAF-Components-5efc2e4f31e3456e68ac19fe21352ac501302bf4.tar.bz2
EAAF-Components-5efc2e4f31e3456e68ac19fe21352ac501302bf4.zip
refact(sl20): switch to one single JSONMapper instsance
-rw-r--r--eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/utils/IJsonMapper.java54
-rw-r--r--eaaf_modules/eaaf_module_auth_sl20/src/main/java/at/gv/egiz/eaaf/modules/auth/sl20/utils/JsonMapper.java129
-rw-r--r--eaaf_modules/eaaf_module_auth_sl20/src/main/java/at/gv/egiz/eaaf/modules/auth/sl20/utils/JsonSecurityUtils.java15
-rw-r--r--eaaf_modules/eaaf_module_auth_sl20/src/main/java/at/gv/egiz/eaaf/modules/auth/sl20/utils/SL20HttpBindingUtils.java7
-rw-r--r--eaaf_modules/eaaf_module_auth_sl20/src/main/java/at/gv/egiz/eaaf/modules/auth/sl20/utils/SL20JsonBuilderUtils.java52
-rw-r--r--eaaf_modules/eaaf_module_auth_sl20/src/main/java/at/gv/egiz/eaaf/modules/auth/sl20/utils/SL20JsonExtractorUtils.java9
6 files changed, 46 insertions, 220 deletions
diff --git a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/utils/IJsonMapper.java b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/utils/IJsonMapper.java
deleted file mode 100644
index 08c48435..00000000
--- a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/api/utils/IJsonMapper.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package at.gv.egiz.eaaf.core.api.utils;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-import at.gv.egiz.eaaf.core.exceptions.EaafJsonMapperException;
-
-public interface IJsonMapper {
-
- /**
- * Serialize an object to a JSON string.
- *
- * @param value the object to serialize
- * @return a JSON string
- * @throws JsonProcessingException thrown when an error occurs during
- * serialization
- */
- String serialize(Object value) throws EaafJsonMapperException;
-
- /**
- * Deserialize a JSON string.
- *
- * @param value the JSON string to deserialize
- * @param clazz optional parameter that determines the type of the returned
- * object. If not set, an {@link Object} is returned.
- * @param <T> Response class type
- * @return the deserialized JSON string as an object of type {@code clazz} or
- * {@link Object}
- * @throws JsonParseException if the JSON string contains invalid content.
- * @throws JsonMappingException if the input JSON structure does not match
- * structure expected for result type
- * @throws IOException if an I/O problem occurs (e.g. unexpected
- * end-of-input)
- */
- <T> Object deserialize(String value, Class<T> clazz) throws EaafJsonMapperException;
-
- /**
- * Deserialize a JSON string.
- *
- * @param is the JSON to deserialize as {@link InputStream}
- * @param clazz optional parameter that determines the type of the returned
- * object. If not set, an {@link Object} is returned.
- * @param <T> Response class type
- * @return the deserialized JSON string as an object of type {@code clazz} or
- * {@link Object}
- * @throws JsonParseException if the JSON string contains invalid content.
- * @throws JsonMappingException if the input JSON structure does not match
- * structure expected for result type
- * @throws IOException if an I/O problem occurs (e.g. unexpected
- * end-of-input)
- */
- <T> Object deserialize(InputStream is, Class<T> clazz) throws EaafJsonMapperException;
-
-}
diff --git a/eaaf_modules/eaaf_module_auth_sl20/src/main/java/at/gv/egiz/eaaf/modules/auth/sl20/utils/JsonMapper.java b/eaaf_modules/eaaf_module_auth_sl20/src/main/java/at/gv/egiz/eaaf/modules/auth/sl20/utils/JsonMapper.java
index 2387a9f2..6868ac97 100644
--- a/eaaf_modules/eaaf_module_auth_sl20/src/main/java/at/gv/egiz/eaaf/modules/auth/sl20/utils/JsonMapper.java
+++ b/eaaf_modules/eaaf_module_auth_sl20/src/main/java/at/gv/egiz/eaaf/modules/auth/sl20/utils/JsonMapper.java
@@ -1,44 +1,20 @@
package at.gv.egiz.eaaf.modules.auth.sl20.utils;
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.lang.NonNull;
-
import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
import com.fasterxml.jackson.annotation.PropertyAccessor;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationFeature;
-import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.SerializationFeature;
-import com.fasterxml.jackson.databind.type.TypeFactory;
-
-import at.gv.egiz.eaaf.core.api.utils.IJsonMapper;
-import at.gv.egiz.eaaf.core.exceptions.EaafJsonMapperException;
-
-public class JsonMapper implements IJsonMapper {
- private static final Logger log = LoggerFactory.getLogger(JsonMapper.class);
- private final ObjectMapper mapper = new ObjectMapper();
+import lombok.Getter;
+import lombok.extern.slf4j.Slf4j;
- /**
- * The default constructor where the default pretty printer is disabled.
- */
- public JsonMapper() {
- this(false);
+@Slf4j
+public class JsonMapper {
+
+ @Getter
+ private static final ObjectMapper mapper = new ObjectMapper();
- }
-
- /**
- * The constructor.
- *
- * @param prettyPrint enables or disables the default pretty printer
- */
- public JsonMapper(@NonNull final boolean prettyPrint) {
+ static {
log.trace("Initializing JSON object-mapper ... ");
mapper.configure(DeserializationFeature.FAIL_ON_READING_DUP_TREE_KEY, true);
mapper.configure(DeserializationFeature.FAIL_ON_TRAILING_TOKENS, true);
@@ -46,94 +22,7 @@ public class JsonMapper implements IJsonMapper {
mapper.setVisibility(PropertyAccessor.ALL, Visibility.NONE);
mapper.setVisibility(PropertyAccessor.GETTER, Visibility.PUBLIC_ONLY);
mapper.setVisibility(PropertyAccessor.IS_GETTER, Visibility.PUBLIC_ONLY);
- if (prettyPrint) {
- mapper.enable(SerializationFeature.INDENT_OUTPUT);
- }
-
- log.debug("JSON object-mapper initialized");
-
- }
-
- /*
- * (non-Javadoc)
- *
- * @at.gv.egiz.eaaf.core.api.utils.IJsonMapper#getMapper()
- */
- public ObjectMapper getMapper() {
- return mapper;
-
- }
-
- /*
- * (non-Javadoc)
- *
- * @see at.gv.egiz.eaaf.core.api.utils.IJsonMapper#serialize(java.lang.Object)
- */
- @Override
- public String serialize(final Object value) throws EaafJsonMapperException {
- try {
- return mapper.writeValueAsString(value);
-
- } catch (final JsonProcessingException e) {
- log.warn("JSON mapping FAILED with error: {}", e.getMessage());
- throw new EaafJsonMapperException(e.getMessage(), e);
-
- }
-
- }
-
- /*
- * (non-Javadoc)
- *
- * @see at.gv.egiz.eaaf.core.api.utils.IJsonMapper#deserialize(java.lang.String,
- * java.lang.Class)
- */
- @Override
- public <T> Object deserialize(final String value, final Class<T> clazz) throws EaafJsonMapperException {
- try {
- if (clazz != null) {
- if (clazz.isAssignableFrom(TypeReference.class)) {
- return mapper.readValue(value, clazz);
- } else {
- final JavaType javaType = TypeFactory.defaultInstance().constructType(clazz);
- return mapper.readValue(value, javaType);
-
- }
-
- } else {
- return mapper.readValue(value, Object.class);
- }
-
- } catch (final IOException e) {
- log.warn("JSON mapping FAILED with error: {}", e.getMessage());
- throw new EaafJsonMapperException(e.getMessage(), e);
-
- }
-
- }
-
- @Override
- public <T> Object deserialize(final InputStream is, final Class<T> clazz) throws EaafJsonMapperException {
- try {
- if (clazz != null) {
- if (clazz.isAssignableFrom(TypeReference.class)) {
- return mapper.readValue(is, clazz);
- } else {
- final JavaType javaType = TypeFactory.defaultInstance().constructType(clazz);
- return mapper.readValue(is, javaType);
-
- }
-
- } else {
- return mapper.readValue(is, Object.class);
- }
-
- } catch (final IOException e) {
- log.warn("JSON mapping FAILED with error: {}", e.getMessage());
- throw new EaafJsonMapperException(e.getMessage(), e);
-
- }
-
+
}
}
diff --git a/eaaf_modules/eaaf_module_auth_sl20/src/main/java/at/gv/egiz/eaaf/modules/auth/sl20/utils/JsonSecurityUtils.java b/eaaf_modules/eaaf_module_auth_sl20/src/main/java/at/gv/egiz/eaaf/modules/auth/sl20/utils/JsonSecurityUtils.java
index 690a07dd..4e939d55 100644
--- a/eaaf_modules/eaaf_module_auth_sl20/src/main/java/at/gv/egiz/eaaf/modules/auth/sl20/utils/JsonSecurityUtils.java
+++ b/eaaf_modules/eaaf_module_auth_sl20/src/main/java/at/gv/egiz/eaaf/modules/auth/sl20/utils/JsonSecurityUtils.java
@@ -23,8 +23,6 @@ import org.jose4j.jws.AlgorithmIdentifiers;
import org.jose4j.jwx.HeaderParameterNames;
import org.jose4j.keys.X509Util;
import org.jose4j.lang.JoseException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.lang.NonNull;
import org.springframework.stereotype.Service;
@@ -43,18 +41,19 @@ import at.gv.egiz.eaaf.core.impl.credential.KeyStoreConfiguration;
import at.gv.egiz.eaaf.core.impl.credential.KeyStoreConfiguration.KeyStoreType;
import at.gv.egiz.eaaf.core.impl.data.Pair;
import at.gv.egiz.eaaf.core.impl.utils.JoseUtils;
-import at.gv.egiz.eaaf.core.impl.utils.X509Utils;
import at.gv.egiz.eaaf.core.impl.utils.JoseUtils.JwsResult;
+import at.gv.egiz.eaaf.core.impl.utils.X509Utils;
import at.gv.egiz.eaaf.modules.auth.sl20.Constants;
import at.gv.egiz.eaaf.modules.auth.sl20.data.VerificationResult;
import at.gv.egiz.eaaf.modules.auth.sl20.exceptions.SL20Exception;
import at.gv.egiz.eaaf.modules.auth.sl20.exceptions.SL20SecurityException;
import at.gv.egiz.eaaf.modules.auth.sl20.exceptions.SlCommandoBuildException;
import at.gv.egiz.eaaf.modules.auth.sl20.exceptions.SlCommandoParserException;
+import lombok.extern.slf4j.Slf4j;
@Service
+@Slf4j
public class JsonSecurityUtils implements IJoseTools {
- private static final Logger log = LoggerFactory.getLogger(JsonSecurityUtils.class);
private static final String FRIENDLYNAME_KEYSTORE = "SL2.0 KeyStore";
private static final String FRIENDLYNAME_TRUSTSTORE = "SL2.0 TrustStore";
@@ -67,8 +66,6 @@ public class JsonSecurityUtils implements IJoseTools {
private Pair<KeyStore, Provider> keyStore;
private Pair<KeyStore, Provider> trustStore;
- private static JsonMapper mapper = new JsonMapper();
-
@PostConstruct
protected void initalize() throws SL20Exception {
log.info("Initialize SL2.0 authentication security constrains ... ");
@@ -160,8 +157,8 @@ public class JsonSecurityUtils implements IJoseTools {
final JwsResult result = JoseUtils.validateSignature(serializedContent, trustedCerts, constraints);
return new VerificationResult(
- mapper.getMapper().readTree(result.getFullJoseHeader().getFullHeaderAsJsonString()),
- mapper.getMapper().readTree(result.getPayLoad()),
+ JsonMapper.getMapper().readTree(result.getFullJoseHeader().getFullHeaderAsJsonString()),
+ JsonMapper.getMapper().readTree(result.getPayLoad()),
result.getX5cCerts(), result.isValid());
}
@@ -279,7 +276,7 @@ public class JsonSecurityUtils implements IJoseTools {
receiverJwe.setKey(JoseUtils.convertToBcKeyIfRequired(encryptionCred.getFirst()));
// decrypt payload
- return mapper.getMapper().readTree(receiverJwe.getPlaintextString());
+ return JsonMapper.getMapper().readTree(receiverJwe.getPlaintextString());
} catch (final JoseException | EaafKeyAccessException e) {
log.warn("SL2.0 result decryption FAILED", e);
diff --git a/eaaf_modules/eaaf_module_auth_sl20/src/main/java/at/gv/egiz/eaaf/modules/auth/sl20/utils/SL20HttpBindingUtils.java b/eaaf_modules/eaaf_module_auth_sl20/src/main/java/at/gv/egiz/eaaf/modules/auth/sl20/utils/SL20HttpBindingUtils.java
index 2b6ddb96..96fd34e8 100644
--- a/eaaf_modules/eaaf_module_auth_sl20/src/main/java/at/gv/egiz/eaaf/modules/auth/sl20/utils/SL20HttpBindingUtils.java
+++ b/eaaf_modules/eaaf_module_auth_sl20/src/main/java/at/gv/egiz/eaaf/modules/auth/sl20/utils/SL20HttpBindingUtils.java
@@ -33,7 +33,6 @@ import lombok.Getter;
public class SL20HttpBindingUtils {
private static final Logger log = LoggerFactory.getLogger(SL20HttpBindingUtils.class);
- private static JsonMapper mapper = new JsonMapper();
@Data
@Getter
@@ -81,7 +80,7 @@ public class SL20HttpBindingUtils {
}
final String sl20RespString = new URIBuilder(locationHeader[0].getValue()).getQueryParams().get(0).getValue();
- return new Sl20ResponseHolder(mapper.getMapper().readTree(Base64Url.decode(sl20RespString)),
+ return new Sl20ResponseHolder(JsonMapper.getMapper().readTree(Base64Url.decode(sl20RespString)),
response.getStatusLine());
} else if (
@@ -96,7 +95,7 @@ public class SL20HttpBindingUtils {
bodyMsg = EntityUtils.toString(response.getEntity());
log.info("SL20 response with http-code: {0} and errorMsg: {1}", httpStatusCode, bodyMsg);
Sl20ResponseHolder holder = new Sl20ResponseHolder(
- mapper.getMapper().readTree(bodyMsg), response.getStatusLine());
+ JsonMapper.getMapper().readTree(bodyMsg), response.getStatusLine());
return holder;
} catch (final IOException | ParseException e) {
@@ -175,7 +174,7 @@ public class SL20HttpBindingUtils {
if (resp != null && resp.getContent() != null) {
final String rawSL20Resp = EntityUtils.toString(resp);
try {
- final JsonNode sl20Resp = mapper.getMapper().readTree(rawSL20Resp);
+ final JsonNode sl20Resp = JsonMapper.getMapper().readTree(rawSL20Resp);
if (sl20Resp != null) {
return sl20Resp;
diff --git a/eaaf_modules/eaaf_module_auth_sl20/src/main/java/at/gv/egiz/eaaf/modules/auth/sl20/utils/SL20JsonBuilderUtils.java b/eaaf_modules/eaaf_module_auth_sl20/src/main/java/at/gv/egiz/eaaf/modules/auth/sl20/utils/SL20JsonBuilderUtils.java
index aa749d73..10e34334 100644
--- a/eaaf_modules/eaaf_module_auth_sl20/src/main/java/at/gv/egiz/eaaf/modules/auth/sl20/utils/SL20JsonBuilderUtils.java
+++ b/eaaf_modules/eaaf_module_auth_sl20/src/main/java/at/gv/egiz/eaaf/modules/auth/sl20/utils/SL20JsonBuilderUtils.java
@@ -17,8 +17,6 @@ import at.gv.egiz.eaaf.modules.auth.sl20.exceptions.SlCommandoBuildException;
public class SL20JsonBuilderUtils {
- private static JsonMapper mapper = new JsonMapper();
-
/**
* Create command request.
*
@@ -29,7 +27,7 @@ public class SL20JsonBuilderUtils {
*/
public static ObjectNode createCommand(final String name, final ObjectNode params) throws SlCommandoBuildException {
- final ObjectNode command = mapper.getMapper().createObjectNode();
+ final ObjectNode command = JsonMapper.getMapper().createObjectNode();
addSingleStringElement(command, SL20Constants.SL20_COMMAND_CONTAINER_NAME, name, true);
addSingleJsonElement(command, SL20Constants.SL20_COMMAND_CONTAINER_PARAMS, params, true);
return command;
@@ -47,7 +45,7 @@ public class SL20JsonBuilderUtils {
*/
public static String createSignedCommand(final String name, final ObjectNode params, final IJoseTools signer)
throws SlCommandoBuildException {
- final ObjectNode command = mapper.getMapper().createObjectNode();
+ final ObjectNode command = JsonMapper.getMapper().createObjectNode();
addSingleStringElement(command, SL20Constants.SL20_COMMAND_CONTAINER_NAME, name, true);
addSingleJsonElement(command, SL20Constants.SL20_COMMAND_CONTAINER_PARAMS, params, true);
return signer.createSignature(command.toString());
@@ -91,7 +89,7 @@ public class SL20JsonBuilderUtils {
*/
public static ObjectNode createCommandResponse(final String name, final ObjectNode result,
final String encryptedResult) throws SlCommandoBuildException {
- final ObjectNode command = mapper.getMapper().createObjectNode();
+ final ObjectNode command = JsonMapper.getMapper().createObjectNode();
addSingleStringElement(command, SL20Constants.SL20_COMMAND_CONTAINER_NAME, name, true);
addOnlyOnceOfTwo(command, SL20Constants.SL20_COMMAND_CONTAINER_RESULT,
SL20Constants.SL20_COMMAND_CONTAINER_ENCRYPTEDRESULT, result, encryptedResult);
@@ -112,7 +110,7 @@ public class SL20JsonBuilderUtils {
*/
public static String createSignedCommandResponse(final String name, final ObjectNode result,
final String encryptedResult, final JsonSecurityUtils signer) throws SlCommandoBuildException {
- final ObjectNode command = mapper.getMapper().createObjectNode();
+ final ObjectNode command = JsonMapper.getMapper().createObjectNode();
addSingleStringElement(command, SL20Constants.SL20_COMMAND_CONTAINER_NAME, name, true);
addOnlyOnceOfTwo(command, SL20Constants.SL20_COMMAND_CONTAINER_RESULT,
SL20Constants.SL20_COMMAND_CONTAINER_ENCRYPTEDRESULT, result, encryptedResult);
@@ -146,7 +144,7 @@ public class SL20JsonBuilderUtils {
*/
public static ObjectNode createRedirectCommandParameters(final String url, final ObjectNode command,
final ObjectNode signedCommand, final Boolean ipcRedirect) throws SlCommandoBuildException {
- final ObjectNode redirectReqParams = mapper.getMapper().createObjectNode();
+ final ObjectNode redirectReqParams = JsonMapper.getMapper().createObjectNode();
addOnlyOnceOfTwo(redirectReqParams, SL20Constants.SL20_COMMAND_PARAM_GENERAL_REDIRECT_COMMAND,
SL20Constants.SL20_COMMAND_PARAM_GENERAL_REDIRECT_SIGNEDCOMMAND, command, signedCommand);
addSingleStringElement(redirectReqParams, SL20Constants.SL20_COMMAND_PARAM_GENERAL_REDIRECT_URL, url, false);
@@ -168,7 +166,7 @@ public class SL20JsonBuilderUtils {
*/
public static ObjectNode createCallCommandParameters(final String url, final String method,
final Boolean includeTransactionId, final Map<String, String> reqParameters) throws SlCommandoBuildException {
- final ObjectNode callReqParams = mapper.getMapper().createObjectNode();
+ final ObjectNode callReqParams = JsonMapper.getMapper().createObjectNode();
addSingleStringElement(callReqParams, SL20Constants.SL20_COMMAND_PARAM_GENERAL_CALL_URL, url, true);
addSingleStringElement(callReqParams, SL20Constants.SL20_COMMAND_PARAM_GENERAL_CALL_METHOD, method, true);
addSingleBooleanElement(callReqParams, SL20Constants.SL20_COMMAND_PARAM_GENERAL_CALL_INCLUDETRANSACTIONID,
@@ -188,7 +186,7 @@ public class SL20JsonBuilderUtils {
*/
public static ObjectNode createErrorCommandResult(final String errorCode, final String errorMsg)
throws SlCommandoBuildException {
- final ObjectNode result = mapper.getMapper().createObjectNode();
+ final ObjectNode result = JsonMapper.getMapper().createObjectNode();
addSingleStringElement(result, SL20Constants.SL20_COMMAND_PARAM_GENERAL_RESPONSE_ERRORCODE, errorCode, true);
addSingleStringElement(result, SL20Constants.SL20_COMMAND_PARAM_GENERAL_RESPONSE_ERRORMESSAGE, errorMsg, true);
return result;
@@ -212,7 +210,7 @@ public class SL20JsonBuilderUtils {
public static ObjectNode createQualifiedeEidConsent(final String consentTemplateId, final byte[] consent,
final boolean eidasAuthentication, final String dataUrl, final X509Certificate x5cEnc)
throws CertificateEncodingException, SlCommandoBuildException {
- final ObjectNode params = mapper.getMapper().createObjectNode();
+ final ObjectNode params = JsonMapper.getMapper().createObjectNode();
addSingleStringElement(params, SL20Constants.SL20_COMMAND_PARAM_EID_CONSENTTEMPLATEID, consentTemplateId, true);
addSingleByteElement(params, SL20Constants.SL20_COMMAND_PARAM_EID_CONSENT, consent, true);
addSingleBooleanElement(params, SL20Constants.SL20_COMMAND_PARAM_EID_EIDAS_AUTH, eidasAuthentication, false);
@@ -238,7 +236,7 @@ public class SL20JsonBuilderUtils {
public static ObjectNode createQualifiedEidCommandParameters(final String authBlockId, final String dataUrl,
final Map<String, String> additionalReqParameters, final X509Certificate x5cEnc)
throws CertificateEncodingException, SlCommandoBuildException {
- final ObjectNode params = mapper.getMapper().createObjectNode();
+ final ObjectNode params = JsonMapper.getMapper().createObjectNode();
addSingleStringElement(params, SL20Constants.SL20_COMMAND_PARAM_EID_AUTHBLOCKID, authBlockId, true);
addSingleStringElement(params, SL20Constants.SL20_COMMAND_PARAM_EID_DATAURL, dataUrl, true);
addArrayOfStringElements(params, SL20Constants.SL20_COMMAND_PARAM_EID_ATTRIBUTES, additionalReqParameters);
@@ -259,7 +257,7 @@ public class SL20JsonBuilderUtils {
*/
public static ObjectNode createQualifiedEidCommandResult(final byte[] idl, final byte[] authBlock,
final String ccsUrl, final String loa) throws SlCommandoBuildException {
- final ObjectNode result = mapper.getMapper().createObjectNode();
+ final ObjectNode result = JsonMapper.getMapper().createObjectNode();
addSingleByteElement(result, SL20Constants.SL20_COMMAND_PARAM_EID_RESULT_IDL, idl, true);
addSingleByteElement(result, SL20Constants.SL20_COMMAND_PARAM_EID_RESULT_AUTHBLOCK, authBlock, true);
addSingleStringElement(result, SL20Constants.SL20_COMMAND_PARAM_EID_RESULT_CCSURL, ccsUrl, true);
@@ -288,7 +286,7 @@ public class SL20JsonBuilderUtils {
final int keySize, final String keyAlg, final Map<String, String> policies, final String dataUrl,
final X509Certificate x5cVdaTrust, final Boolean reqUserPassword, final X509Certificate x5cEnc)
throws SlCommandoBuildException, CertificateEncodingException {
- final ObjectNode params = mapper.getMapper().createObjectNode();
+ final ObjectNode params = JsonMapper.getMapper().createObjectNode();
addSingleStringElement(params, SL20Constants.SL20_COMMAND_PARAM_BINDING_CREATE_KONTOID, kontoId, true);
addSingleStringElement(params, SL20Constants.SL20_COMMAND_PARAM_BINDING_CREATE_SN, subjectName, true);
addSingleNumberElement(params, SL20Constants.SL20_COMMAND_PARAM_BINDING_CREATE_KEYLENGTH, keySize, true);
@@ -319,7 +317,7 @@ public class SL20JsonBuilderUtils {
public static ObjectNode createBindingKeyCommandResult(final String appId, final byte[] csr,
final X509Certificate attCert, final byte[] password)
throws SlCommandoBuildException, CertificateEncodingException {
- final ObjectNode result = mapper.getMapper().createObjectNode();
+ final ObjectNode result = JsonMapper.getMapper().createObjectNode();
addSingleStringElement(result, SL20Constants.SL20_COMMAND_PARAM_BINDING_CREATE_RESULT_APPID, appId, true);
addSingleByteElement(result, SL20Constants.SL20_COMMAND_PARAM_BINDING_CREATE_RESULT_CSR, csr, true);
addSingleCertificateElement(result,
@@ -341,7 +339,7 @@ public class SL20JsonBuilderUtils {
*/
public static ObjectNode createStoreBindingCertCommandParams(final X509Certificate cert, final String dataUrl)
throws CertificateEncodingException, SlCommandoBuildException {
- final ObjectNode params = mapper.getMapper().createObjectNode();
+ final ObjectNode params = JsonMapper.getMapper().createObjectNode();
addSingleCertificateElement(params, SL20Constants.SL20_COMMAND_PARAM_BINDING_STORE_CERTIFICATE, cert, true);
addSingleStringElement(params, SL20Constants.SL20_COMMAND_PARAM_BINDING_STORE_DATAURL, dataUrl, true);
return params;
@@ -355,7 +353,7 @@ public class SL20JsonBuilderUtils {
* @throws SlCommandoBuildException In case of an error
*/
public static ObjectNode createStoreBindingCertCommandSuccessResult() throws SlCommandoBuildException {
- final ObjectNode result = mapper.getMapper().createObjectNode();
+ final ObjectNode result = JsonMapper.getMapper().createObjectNode();
addSingleStringElement(result, SL20Constants.SL20_COMMAND_PARAM_BINDING_STORE_RESULT_SUCESS,
SL20Constants.SL20_COMMAND_PARAM_BINDING_STORE_RESULT_SUCESS_VALUE, true);
return result;
@@ -375,7 +373,7 @@ public class SL20JsonBuilderUtils {
*/
public static ObjectNode createIdAndPasswordCommandParameters(final String keyAlg, final String dataUrl,
final X509Certificate x5cEnc) throws SlCommandoBuildException, CertificateEncodingException {
- final ObjectNode params = mapper.getMapper().createObjectNode();
+ final ObjectNode params = JsonMapper.getMapper().createObjectNode();
addSingleStringElement(params, SL20Constants.SL20_COMMAND_PARAM_AUTH_IDANDPASSWORD_KEYALG, keyAlg, true);
addSingleStringElement(params, SL20Constants.SL20_COMMAND_PARAM_AUTH_IDANDPASSWORD_DATAURL, dataUrl, true);
addSingleCertificateElement(params, SL20Constants.SL20_COMMAND_PARAM_AUTH_IDANDPASSWORD_X5CENC, x5cEnc, false);
@@ -393,7 +391,7 @@ public class SL20JsonBuilderUtils {
*/
public static ObjectNode createIdAndPasswordCommandResult(final String kontoId, final byte[] password)
throws SlCommandoBuildException {
- final ObjectNode result = mapper.getMapper().createObjectNode();
+ final ObjectNode result = JsonMapper.getMapper().createObjectNode();
addSingleStringElement(result, SL20Constants.SL20_COMMAND_PARAM_AUTH_IDANDPASSWORD_RESULT_KONTOID, kontoId, true);
addSingleByteElement(result, SL20Constants.SL20_COMMAND_PARAM_AUTH_IDANDPASSWORD_RESULT_USERPASSWORD, password,
true);
@@ -413,7 +411,7 @@ public class SL20JsonBuilderUtils {
*/
public static ObjectNode createJwsTokenAuthCommandParams(final String nonce, final String dataUrl,
final List<String> displayData, final List<String> displayUrl) throws SlCommandoBuildException {
- final ObjectNode params = mapper.getMapper().createObjectNode();
+ final ObjectNode params = JsonMapper.getMapper().createObjectNode();
addSingleStringElement(params, SL20Constants.SL20_COMMAND_PARAM_AUTH_JWSTOKEN_NONCE, nonce, true);
addSingleStringElement(params, SL20Constants.SL20_COMMAND_PARAM_AUTH_JWSTOKEN_DATAURL, dataUrl, true);
addArrayOfStrings(params, SL20Constants.SL20_COMMAND_PARAM_AUTH_JWSTOKEN_DISPLAYDATA, displayData);
@@ -430,7 +428,7 @@ public class SL20JsonBuilderUtils {
* @throws SlCommandoBuildException In case of an error
*/
public static ObjectNode createJwsTokenAuthCommandResult(final String nonce) throws SlCommandoBuildException {
- final ObjectNode result = mapper.getMapper().createObjectNode();
+ final ObjectNode result = JsonMapper.getMapper().createObjectNode();
addSingleStringElement(result, SL20Constants.SL20_COMMAND_PARAM_AUTH_JWSTOKEN_RESULT_NONCE, nonce, true);
return result;
@@ -448,7 +446,7 @@ public class SL20JsonBuilderUtils {
*/
public static ObjectNode createGenericRequest(final String reqId, final String transactionId,
final ObjectNode payLoad, final String signedPayload) throws SlCommandoBuildException {
- final ObjectNode req = mapper.getMapper().createObjectNode();
+ final ObjectNode req = JsonMapper.getMapper().createObjectNode();
addSingleIntegerElement(req, SL20Constants.SL20_VERSION, SL20Constants.CURRENT_SL20_VERSION, true);
addSingleStringElement(req, SL20Constants.SL20_REQID, reqId, true);
addSingleStringElement(req, SL20Constants.SL20_TRANSACTIONID, transactionId, false);
@@ -471,7 +469,7 @@ public class SL20JsonBuilderUtils {
public static final ObjectNode createGenericResponse(final String respId, final String inResponseTo,
final String transactionId, final ObjectNode payLoad, final String signedPayload)
throws SlCommandoBuildException {
- final ObjectNode req = mapper.getMapper().createObjectNode();
+ final ObjectNode req = JsonMapper.getMapper().createObjectNode();
addSingleIntegerElement(req, SL20Constants.SL20_VERSION, SL20Constants.CURRENT_SL20_VERSION, true);
addSingleStringElement(req, SL20Constants.SL20_RESPID, respId, true);
addSingleStringElement(req, SL20Constants.SL20_INRESPTO, inResponseTo, false);
@@ -525,7 +523,7 @@ public class SL20JsonBuilderUtils {
// TODO!!!!
private static ObjectNode createJsonSignedHeader() throws SlCommandoBuildException {
- final ObjectNode header = mapper.getMapper().createObjectNode();
+ final ObjectNode header = JsonMapper.getMapper().createObjectNode();
addSingleStringElement(header, SL20Constants.JSON_ALGORITHM, SL20Constants.JSON_ALGORITHM_SIGNING_RS256, true);
addSingleStringElement(header, SL20Constants.JSON_CONTENTTYPE, SL20Constants.SL20_CONTENTTYPE_SIGNED_COMMAND, true);
addArrayOfStrings(header, SL20Constants.JSON_X509_CERTIFICATE, Arrays.asList(Constants.DUMMY_SIGNING_CERT));
@@ -535,7 +533,7 @@ public class SL20JsonBuilderUtils {
// TODO!!!!
private static ObjectNode createJsonEncryptionHeader() throws SlCommandoBuildException {
- final ObjectNode header = mapper.getMapper().createObjectNode();
+ final ObjectNode header = JsonMapper.getMapper().createObjectNode();
addSingleStringElement(header, SL20Constants.JSON_ALGORITHM, SL20Constants.JSON_ALGORITHM_ENC_KEY_RSAOAEP, true);
addSingleStringElement(header, SL20Constants.JSON_ENCRYPTION_PAYLOAD,
SL20Constants.JSON_ALGORITHM_ENC_PAYLOAD_A128CBCHS256, true);
@@ -559,7 +557,7 @@ public class SL20JsonBuilderUtils {
throws SlCommandoBuildException {
validateParentAndKey(parent, keyId);
if (values != null) {
- final ArrayNode callReqParamsArray = mapper.getMapper().createArrayNode();
+ final ArrayNode callReqParamsArray = JsonMapper.getMapper().createArrayNode();
parent.set(keyId, callReqParamsArray);
for (final String el : values) {
callReqParamsArray.add(el);
@@ -572,11 +570,11 @@ public class SL20JsonBuilderUtils {
final Map<String, String> keyValuePairs) throws SlCommandoBuildException {
validateParentAndKey(parent, keyId);
if (keyValuePairs != null) {
- final ArrayNode callReqParamsArray = mapper.getMapper().createArrayNode();
+ final ArrayNode callReqParamsArray = JsonMapper.getMapper().createArrayNode();
parent.set(keyId, callReqParamsArray);
for (final Entry<String, String> el : keyValuePairs.entrySet()) {
- final ObjectNode callReqParams = mapper.getMapper().createObjectNode();
+ final ObjectNode callReqParams = JsonMapper.getMapper().createObjectNode();
callReqParams.put(el.getKey(), el.getValue());
callReqParamsArray.add(callReqParams);
diff --git a/eaaf_modules/eaaf_module_auth_sl20/src/main/java/at/gv/egiz/eaaf/modules/auth/sl20/utils/SL20JsonExtractorUtils.java b/eaaf_modules/eaaf_module_auth_sl20/src/main/java/at/gv/egiz/eaaf/modules/auth/sl20/utils/SL20JsonExtractorUtils.java
index bed25c0c..4da46235 100644
--- a/eaaf_modules/eaaf_module_auth_sl20/src/main/java/at/gv/egiz/eaaf/modules/auth/sl20/utils/SL20JsonExtractorUtils.java
+++ b/eaaf_modules/eaaf_module_auth_sl20/src/main/java/at/gv/egiz/eaaf/modules/auth/sl20/utils/SL20JsonExtractorUtils.java
@@ -8,19 +8,16 @@ import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import at.gv.egiz.eaaf.modules.auth.sl20.data.VerificationResult;
import at.gv.egiz.eaaf.modules.auth.sl20.exceptions.SL20Exception;
import at.gv.egiz.eaaf.modules.auth.sl20.exceptions.SlCommandoParserException;
+import lombok.extern.slf4j.Slf4j;
+@Slf4j
public class SL20JsonExtractorUtils {
- private static final Logger log = LoggerFactory.getLogger(SL20JsonExtractorUtils.class);
- private static JsonMapper mapper = new JsonMapper();
/**
* Extract String value from JSON.
@@ -234,7 +231,7 @@ public class SL20JsonExtractorUtils {
// dummy code
try {
final String[] signedPayload = encryptedResult.toString().split("\\.");
- final JsonNode payLoad = mapper.getMapper()
+ final JsonNode payLoad = JsonMapper.getMapper()
.readTree(new String(Base64.getUrlDecoder().decode(signedPayload[1]), "UTF-8"));
return payLoad;