diff options
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;      } | 
