diff options
| author | Alexander Marsalek <amarsalek@iaik.tugraz.at> | 2014-07-08 15:35:03 +0200 | 
|---|---|---|
| committer | Alexander Marsalek <amarsalek@iaik.tugraz.at> | 2014-07-08 15:35:03 +0200 | 
| commit | 8594d17a97f1e53a81719141ce70f55d6269553e (patch) | |
| tree | c4981d112cc49febb2e5ec1098d33c72a6fc577d /id/server/idserverlib | |
| parent | 2c08cd2206340912411e092a99c6874be179d211 (diff) | |
| download | moa-id-spss-8594d17a97f1e53a81719141ce70f55d6269553e.tar.gz moa-id-spss-8594d17a97f1e53a81719141ce70f55d6269553e.tar.bz2 moa-id-spss-8594d17a97f1e53a81719141ce70f55d6269553e.zip | |
pass signature to szrg connector and only try to parse it there from SignedDoc if it is missing
Diffstat (limited to 'id/server/idserverlib')
3 files changed, 16 insertions, 12 deletions
| diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/PEPSConnectorServlet.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/PEPSConnectorServlet.java index 5a2fda67f..ee1d1728a 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/PEPSConnectorServlet.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/PEPSConnectorServlet.java @@ -318,7 +318,7 @@ public class PEPSConnectorServlet extends AuthServlet {  				identityLink = STORKResponseProcessor.connectToSZRGateway(authnResponse.getPersonalAttributeList(),
  																		  oaParam.getFriendlyName(), 
  																		  targetType, null, 
 -																		  oaParam.getMandateProfiles());
 +																		  oaParam.getMandateProfiles(), citizenSignature);
  			} catch (STORKException e) {
  				// this is really nasty but we work against the system here. We are supposed to get the gender attribute from
  				// stork. If we do not, we cannot register the person in the ERnP - we have to have the
 diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/PEPSConnectorWithLocalSigningServlet.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/PEPSConnectorWithLocalSigningServlet.java index bf2df9d7a..e2f6e50b1 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/PEPSConnectorWithLocalSigningServlet.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/PEPSConnectorWithLocalSigningServlet.java @@ -215,7 +215,7 @@ public class PEPSConnectorWithLocalSigningServlet extends AuthServlet {  				personalAttributeList.add(signedDocAttribute);  				String authnContextClassRef = moaSession.getAuthnContextClassRef(); -				SZRGInsertion(moaSession, personalAttributeList, authnContextClassRef); +				SZRGInsertion(moaSession, personalAttributeList, authnContextClassRef, citizenSignature);  			} catch (STORKException e) {  				// this is really nasty but we work against the system here. We are supposed to get the gender attribute from  				// stork. If we do not, we cannot register the person in the ERnP - we have to have the @@ -487,7 +487,7 @@ public class PEPSConnectorWithLocalSigningServlet extends AuthServlet {  			}  			try{ -				SZRGInsertion(moaSession, authnResponse.getPersonalAttributeList(), authnResponse.getAssertions().get(0).getAuthnStatements().get(0).getAuthnContext().getAuthnContextClassRef().getAuthnContextClassRef()); +				SZRGInsertion(moaSession, authnResponse.getPersonalAttributeList(), authnResponse.getAssertions().get(0).getAuthnStatements().get(0).getAuthnContext().getAuthnContextClassRef().getAuthnContextClassRef(),citizenSignature);  			} catch (STORKException e) {  				// this is really nasty but we work against the system here. We are supposed to get the gender attribute from  				// stork. If we do not, we cannot register the person in the ERnP - we have to have the @@ -633,7 +633,7 @@ public class PEPSConnectorWithLocalSigningServlet extends AuthServlet {  		return null;  	} -	private void SZRGInsertion(AuthenticationSession moaSession, IPersonalAttributeList personalAttributeList, String authnContextClassRef) throws STORKException, MOAIDException +	private void SZRGInsertion(AuthenticationSession moaSession, IPersonalAttributeList personalAttributeList, String authnContextClassRef, String citizenSignature) throws STORKException, MOAIDException  	{  		Logger.debug("Foregin Citizen signature successfully extracted from STORK Assertion (signedDoc)");  		Logger.debug("Citizen signature will be verified by SZR Gateway!"); @@ -666,7 +666,7 @@ public class PEPSConnectorWithLocalSigningServlet extends AuthServlet {  		identityLink = STORKResponseProcessor.connectToSZRGateway(personalAttributeList,  				oaParam.getFriendlyName(),   				targetType, null,  -				oaParam.getMandateProfiles()); +				oaParam.getMandateProfiles(),citizenSignature);  		Logger.debug("SZR communication was successfull");  		if (identityLink == null) { diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/stork/STORKResponseProcessor.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/stork/STORKResponseProcessor.java index 5d7eefe0a..7113dcf70 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/stork/STORKResponseProcessor.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/stork/STORKResponseProcessor.java @@ -124,11 +124,12 @@ public class STORKResponseProcessor {  	 * @param targetType the target type
  	 * @param targetValue the target value
  	 * @param filters the filters
 +	 * @param citizenSignature2 
  	 * @return Identity Link
  	 * @throws STORKException the sTORK exception
  	 * @throws MOAIDException 
  	 */
 -	public static IdentityLink connectToSZRGateway(IPersonalAttributeList attributeList, String oaFriendlyName, String targetType, String targetValue, List<String> filters) throws STORKException, MOAIDException {
 +	public static IdentityLink connectToSZRGateway(IPersonalAttributeList attributeList, String oaFriendlyName, String targetType, String targetValue, List<String> filters, String citizenSignature) throws STORKException, MOAIDException {
  		Logger.trace("Calling SZR Gateway with the following attributes:");
  		CreateIdentityLinkResponse identityLinkResponse = null;
 @@ -137,12 +138,15 @@ public class STORKResponseProcessor {  			Logger.trace("Starting call...");
  			// if there is no signedDoc attribute, we cannot go on
 -			String signResponseString = getAttributeValue("signedDoc", attributeList);
 -			
 -			//Extract signature from SIgnResponse
 -			Source response1 = new StreamSource(new java.io.StringReader(signResponseString));
 -			SignResponse dssSignResponse = ApiUtils.unmarshal(response1, SignResponse.class);
 -			String citizenSignature = getCitizienSignatureFromSignResponse(dssSignResponse);
 +			if(citizenSignature==null || citizenSignature.length()==0)
 +			{
 +				String signResponseString = getAttributeValue("signedDoc", attributeList);
 +				
 +				//Extract signature from SIgnResponse
 +				Source response1 = new StreamSource(new java.io.StringReader(signResponseString));
 +				SignResponse dssSignResponse = ApiUtils.unmarshal(response1, SignResponse.class);
 +				citizenSignature = getCitizienSignatureFromSignResponse(dssSignResponse);
 +			}
  			String fiscalNumber = getAttributeValue("fiscalNumber", attributeList, false);
 | 
