diff options
| author | Thomas Lenz <tlenz@iaik.tugraz.at> | 2018-05-29 07:42:26 +0200 | 
|---|---|---|
| committer | Thomas Lenz <tlenz@iaik.tugraz.at> | 2018-05-29 07:42:26 +0200 | 
| commit | dc2fb6695f44e3e01088e8a986ae1ac98b1743b1 (patch) | |
| tree | ecdc909bdba8f9ebcde6313681841fc27b0cde0d /id/server/modules | |
| parent | cbc72b4eb01828e56e3244bcfe121d729e7e852a (diff) | |
| download | moa-id-spss-dc2fb6695f44e3e01088e8a986ae1ac98b1743b1.tar.gz moa-id-spss-dc2fb6695f44e3e01088e8a986ae1ac98b1743b1.tar.bz2 moa-id-spss-dc2fb6695f44e3e01088e8a986ae1ac98b1743b1.zip | |
update SL2.0 module to support more than one VDA backend
Diffstat (limited to 'id/server/modules')
2 files changed, 30 insertions, 6 deletions
| diff --git a/id/server/modules/moa-id-module-sl20_authentication/src/main/java/at/gv/egovernment/moa/id/auth/modules/sl20_auth/Constants.java b/id/server/modules/moa-id-module-sl20_authentication/src/main/java/at/gv/egovernment/moa/id/auth/modules/sl20_auth/Constants.java index 7a58648cc..920187bfb 100644 --- a/id/server/modules/moa-id-module-sl20_authentication/src/main/java/at/gv/egovernment/moa/id/auth/modules/sl20_auth/Constants.java +++ b/id/server/modules/moa-id-module-sl20_authentication/src/main/java/at/gv/egovernment/moa/id/auth/modules/sl20_auth/Constants.java @@ -5,9 +5,8 @@ public class Constants {  	public static final String HTTP_ENDPOINT_DATAURL = "/sl20/dataUrl";  	public static final String CONFIG_PROP_PREFIX = "modules.sl20"; -	public static final String CONFIG_PROP_VDA_ENDPOINT_QUALeID = CONFIG_PROP_PREFIX + ".vda.urls.qualeID.endpoint"; -	public static final String CONFIG_PROP_VDA_AUTHBLOCK_ID = CONFIG_PROP_PREFIX + ".vda.authblock.id"; -	 +	public static final String CONFIG_PROP_VDA_ENDPOINT_QUALeID_DEFAULT = CONFIG_PROP_PREFIX + ".vda.urls.qualeID.endpoint"; +	public static final String CONFIG_PROP_VDA_AUTHBLOCK_ID = CONFIG_PROP_PREFIX + ".vda.authblock.id";	  	public static final String CONFIG_PROP_SECURITY_KEYSTORE_PATH = CONFIG_PROP_PREFIX + ".security.keystore.path";  	public static final String CONFIG_PROP_SECURITY_KEYSTORE_PASSWORD = CONFIG_PROP_PREFIX + ".security.keystore.password";  	public static final String CONFIG_PROP_SECURITY_KEYSTORE_KEY_SIGN_ALIAS = CONFIG_PROP_PREFIX + ".security.sign.alias"; @@ -15,6 +14,8 @@ public class Constants {  	public static final String CONFIG_PROP_SECURITY_KEYSTORE_KEY_ENCRYPTION_ALIAS = CONFIG_PROP_PREFIX + ".security.encryption.alias";;  	public static final String CONFIG_PROP_SECURITY_KEYSTORE_KEY_ENCRYPTION_PASSWORD = CONFIG_PROP_PREFIX + ".security.encryption.password"; +	public static final String CONFIG_PROP_VDA_ENDPOINT_QUALeID_LIST = CONFIG_PROP_VDA_ENDPOINT_QUALeID_DEFAULT + "."; +	public static final String CONFIG_PROP_SP_LIST = CONFIG_PROP_PREFIX + ".sp.entityIds.";  	public static final String PENDING_REQ_STORAGE_PREFIX = "SL20_AUTH_"; diff --git a/id/server/modules/moa-id-module-sl20_authentication/src/main/java/at/gv/egovernment/moa/id/auth/modules/sl20_auth/tasks/CreateQualeIDRequestTask.java b/id/server/modules/moa-id-module-sl20_authentication/src/main/java/at/gv/egovernment/moa/id/auth/modules/sl20_auth/tasks/CreateQualeIDRequestTask.java index b1dfa9b0d..d9ff9d93c 100644 --- a/id/server/modules/moa-id-module-sl20_authentication/src/main/java/at/gv/egovernment/moa/id/auth/modules/sl20_auth/tasks/CreateQualeIDRequestTask.java +++ b/id/server/modules/moa-id-module-sl20_authentication/src/main/java/at/gv/egovernment/moa/id/auth/modules/sl20_auth/tasks/CreateQualeIDRequestTask.java @@ -4,6 +4,7 @@ import java.util.ArrayList;  import java.util.HashMap;  import java.util.List;  import java.util.Map; +import java.util.Map.Entry;  import java.util.UUID;  import javax.net.ssl.SSLSocketFactory; @@ -38,6 +39,7 @@ import at.gv.egovernment.moa.id.commons.api.AuthConfiguration;  import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;  import at.gv.egovernment.moa.id.commons.api.exceptions.MOAIDException;  import at.gv.egovernment.moa.id.commons.utils.HttpClientWithProxySupport; +import at.gv.egovernment.moa.id.commons.utils.KeyValueUtils;  import at.gv.egovernment.moa.id.process.api.ExecutionContext;  import at.gv.egovernment.moa.id.util.SSLUtils;  import at.gv.egovernment.moa.util.MiscUtil; @@ -59,9 +61,9 @@ public class CreateQualeIDRequestTask extends AbstractAuthServletTask {  				IOAAuthParameters oaConfig = pendingReq.getOnlineApplicationConfiguration();  				//get basic configuration parameters -				String vdaQualeIDUrl = authConfig.getBasicMOAIDConfiguration(Constants.CONFIG_PROP_VDA_ENDPOINT_QUALeID);				 +				String vdaQualeIDUrl = extractVDAURLForSpecificOA(oaConfig);				  				if (MiscUtil.isEmpty(vdaQualeIDUrl)) { -					Logger.error("NO VDA URL for qualified eID (" + Constants.CONFIG_PROP_VDA_ENDPOINT_QUALeID + ")"); +					Logger.error("NO VDA URL for qualified eID (" + Constants.CONFIG_PROP_VDA_ENDPOINT_QUALeID_DEFAULT + ")");  					throw new SL20Exception("sl20.03", new Object[]{"NO VDA URL for qualified eID"});  				} @@ -165,8 +167,29 @@ public class CreateQualeIDRequestTask extends AbstractAuthServletTask {  			} +	} +	 +	private String extractVDAURLForSpecificOA(IOAAuthParameters oaConfig) {		 +		Map<String, String> listOfVDAs = authConfig.getBasicMOAIDConfigurationWithPrefix(Constants.CONFIG_PROP_VDA_ENDPOINT_QUALeID_LIST); +		Map<String, String> listOfSPs = authConfig.getBasicMOAIDConfigurationWithPrefix(Constants.CONFIG_PROP_SP_LIST); +		 +		for (Entry<String, String> el : listOfSPs.entrySet()) { +			List<String> spEntityIds = KeyValueUtils.getListOfCSVValues(el.getValue()); +			if (spEntityIds.contains(oaConfig.getPublicURLPrefix())) { +				Logger.trace("Select VDA endPoint with Id: " + el.getKey()); +				if (listOfVDAs.containsKey(el.getKey()))					 +					return listOfVDAs.get(el.getKey()); +				 +				else +					Logger.info("No VDA endPoint with Id: " + el.getKey()); +				 +			} else +				Logger.trace("SP list: " + el.getKey() + " does not contain OAIdentifier: " + oaConfig.getPublicURLPrefix()); - +		} +		 +		Logger.debug("NO SP specific VDA endpoint found. Use default VDA"); +		return authConfig.getBasicMOAIDConfiguration(Constants.CONFIG_PROP_VDA_ENDPOINT_QUALeID_DEFAULT);  	} | 
