aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Lenz <thomas.lenz@egiz.gv.at>2019-02-21 11:30:46 +0100
committerThomas Lenz <thomas.lenz@egiz.gv.at>2019-02-21 11:30:46 +0100
commitae8fac8033b435de8d77cadb2a84088c2b8fceb6 (patch)
treedc4dcf789bb94e67852469eb4af7b36100ff7a91
parentea311ca9d76710c2e4407818651b2d677fa18d1e (diff)
downloadNational_eIDAS_Gateway-ae8fac8033b435de8d77cadb2a84088c2b8fceb6.tar.gz
National_eIDAS_Gateway-ae8fac8033b435de8d77cadb2a84088c2b8fceb6.tar.bz2
National_eIDAS_Gateway-ae8fac8033b435de8d77cadb2a84088c2b8fceb6.zip
fix problem with nonLatin characters
add additional log messages
-rw-r--r--eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/authmodule_eIDASv2/tasks/CreateIdentityLinkTask.java3
-rw-r--r--eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/authmodule_eIDASv2/tasks/ReceiveAuthnResponseTask.java3
-rw-r--r--eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/authmodule_eIDASv2/utils/eIDASResponseUtils.java25
3 files changed, 26 insertions, 5 deletions
diff --git a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/authmodule_eIDASv2/tasks/CreateIdentityLinkTask.java b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/authmodule_eIDASv2/tasks/CreateIdentityLinkTask.java
index 096fc8cb..481f9e1d 100644
--- a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/authmodule_eIDASv2/tasks/CreateIdentityLinkTask.java
+++ b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/authmodule_eIDASv2/tasks/CreateIdentityLinkTask.java
@@ -100,7 +100,8 @@ public class CreateIdentityLinkTask extends AbstractAuthServletTask {
try{
AuthProcessDataWrapper authProcessData = pendingReq.getSessionData(AuthProcessDataWrapper.class);
ILightResponse eIDASResponse = authProcessData.getGenericDataFromSession(
- Constants.DATA_FULL_EIDAS_RESPONSE, ILightResponse.class);
+ Constants.DATA_FULL_EIDAS_RESPONSE, ILightResponse.class);
+
Map<String, Object> simpleAttrMap = converteIDASAttrToSimpleMap(eIDASResponse.getAttributes().getAttributeMap());
IIdentityLink identityLink = null;
diff --git a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/authmodule_eIDASv2/tasks/ReceiveAuthnResponseTask.java b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/authmodule_eIDASv2/tasks/ReceiveAuthnResponseTask.java
index 3acc9719..93e25102 100644
--- a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/authmodule_eIDASv2/tasks/ReceiveAuthnResponseTask.java
+++ b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/authmodule_eIDASv2/tasks/ReceiveAuthnResponseTask.java
@@ -30,7 +30,6 @@ import javax.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;
import at.asitplus.eidas.specific.connector.MSConnectorEventCodes;
@@ -50,7 +49,6 @@ import eu.eidas.auth.commons.light.ILightResponse;
public class ReceiveAuthnResponseTask extends AbstractAuthServletTask {
private static final Logger log = LoggerFactory.getLogger(ReceiveAuthnResponseTask.class);
- @Autowired private ApplicationContext context;
@Autowired private IConfiguration basicConfig;
@Autowired private eIDASAttributeRegistry attrRegistry;
@@ -65,6 +63,7 @@ public class ReceiveAuthnResponseTask extends AbstractAuthServletTask {
}
log.debug("Receive eIDAS response with RespId:" + eIDASResponse.getId() + " for ReqId:" + eIDASResponse.getInResponseToId());
+ log.trace("Full eIDAS-Resp: " + eIDASResponse.toString());
revisionsLogger.logEvent(pendingReq, MSConnectorEventCodes.RESPONSE_FROM_EIDAS_NODE, eIDASResponse.getId());
diff --git a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/authmodule_eIDASv2/utils/eIDASResponseUtils.java b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/authmodule_eIDASv2/utils/eIDASResponseUtils.java
index cc6d54c4..8422f204 100644
--- a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/authmodule_eIDASv2/utils/eIDASResponseUtils.java
+++ b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/authmodule_eIDASv2/utils/eIDASResponseUtils.java
@@ -27,6 +27,7 @@ import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import org.apache.commons.lang3.StringUtils;
import org.joda.time.DateTime;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -39,6 +40,7 @@ import eu.eidas.auth.commons.attribute.AttributeDefinition;
import eu.eidas.auth.commons.attribute.AttributeValue;
import eu.eidas.auth.commons.attribute.AttributeValueMarshaller;
import eu.eidas.auth.commons.attribute.AttributeValueMarshallingException;
+import eu.eidas.auth.commons.attribute.AttributeValueTransliterator;
import eu.eidas.auth.commons.protocol.eidas.impl.PostalAddress;
public class eIDASResponseUtils {
@@ -83,20 +85,39 @@ public class eIDASResponseUtils {
}
+ //TODO: check possible problem with nonLatinCharacters
public static List<String> translateStringListAttribute(AttributeDefinition<?> attributeDefinition, ImmutableList<? extends AttributeValue<?>> attributeValues) {
final List<String> stringListAttribute = new ArrayList<String>();
AttributeValueMarshaller<?> attributeValueMarshaller = attributeDefinition.getAttributeValueMarshaller();
for (AttributeValue<?> attributeValue : attributeValues) {
String valueString = null;
try {
- valueString = attributeValueMarshaller.marshal((AttributeValue) attributeValue);
- stringListAttribute.add(valueString);
+ valueString = attributeValueMarshaller.marshal((AttributeValue) attributeValue);
+
+ log.trace("Find attr: " + attributeDefinition.getFriendlyName()
+ + " with value: " + attributeValue.toString()
+ + " nonLatinFlag: " + attributeValue.isNonLatinScriptAlternateVersion()
+ + " needTransliteration: " + AttributeValueTransliterator.needsTransliteration(valueString));
+
+ //if (attributeValue.isNonLatinScriptAlternateVersion()) {
+ if (!AttributeValueTransliterator.needsTransliteration(valueString)) {
+ stringListAttribute.add(0, valueString);
+
+ } else {
+ log.trace("Find 'needsTransliteration' flag. Setting this value at last list element ... ");
+ stringListAttribute.add(valueString);
+
+ }
+
} catch (AttributeValueMarshallingException e) {
throw new IllegalStateException(e);
}
}
+ log.trace("Extract values: " + StringUtils.join(stringListAttribute, ",")
+ + " for attr: " + attributeDefinition.getFriendlyName());
+
return stringListAttribute;
}