diff options
author | Thomas Lenz <thomas.lenz@egiz.gv.at> | 2019-02-21 11:30:46 +0100 |
---|---|---|
committer | Thomas Lenz <thomas.lenz@egiz.gv.at> | 2019-02-21 11:30:46 +0100 |
commit | ae8fac8033b435de8d77cadb2a84088c2b8fceb6 (patch) | |
tree | dc4dcf789bb94e67852469eb4af7b36100ff7a91 /eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/authmodule_eIDASv2/utils/eIDASResponseUtils.java | |
parent | ea311ca9d76710c2e4407818651b2d677fa18d1e (diff) | |
download | National_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
Diffstat (limited to 'eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/authmodule_eIDASv2/utils/eIDASResponseUtils.java')
-rw-r--r-- | eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/authmodule_eIDASv2/utils/eIDASResponseUtils.java | 25 |
1 files changed, 23 insertions, 2 deletions
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; } |