diff options
| author | Thomas Lenz <tlenz@iaik.tugraz.at> | 2016-06-22 08:16:34 +0200 | 
|---|---|---|
| committer | Thomas Lenz <tlenz@iaik.tugraz.at> | 2016-06-22 08:16:34 +0200 | 
| commit | f200a786bd513ae7432cbf6f741ef9f986e19eb4 (patch) | |
| tree | 9cb40f9c68fc520c4d28e8812a899a9de20ec23e /id/server/idserverlib | |
| parent | 055d4911acee6ab9d989f5a1574bbe9a9ade4404 (diff) | |
| download | moa-id-spss-f200a786bd513ae7432cbf6f741ef9f986e19eb4.tar.gz moa-id-spss-f200a786bd513ae7432cbf6f741ef9f986e19eb4.tar.bz2 moa-id-spss-f200a786bd513ae7432cbf6f741ef9f986e19eb4.zip | |
update PVP assertion builder to add user's remote IP address as attribute in 'SubjectConformationData' element
Diffstat (limited to 'id/server/idserverlib')
2 files changed, 22 insertions, 2 deletions
| diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/RequestImpl.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/RequestImpl.java index 91ba49fe8..1e0dfca8a 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/RequestImpl.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/RequestImpl.java @@ -54,8 +54,12 @@ public abstract class RequestImpl implements IRequest, Serializable{  	public static final String DATAID_REQUESTED_ATTRIBUTES = "requestedAttributes";  	public static final String DATAID_INTERFEDERATIOIDP_ENTITYID = "interIDPEntityID"; +	public static final String DATAID_REQUESTER_IP_ADDRESS = "requesterIP"; +	  	public static final String eIDAS_GENERIC_REQ_DATA_COUNTRY = "country"; +	 +	  	private static final long serialVersionUID = 1L;  	private String module = null; @@ -93,10 +97,10 @@ public abstract class RequestImpl implements IRequest, Serializable{  	 */  	public final void initialize(HttpServletRequest req) throws ConfigurationException {				  		//set requestID -		requestID = Random.nextRandom(); +		requestID = Random.nextLongRandom();  		//set unique transaction identifier for logging -		uniqueTransactionIdentifer = Random.nextRandom();		 +		uniqueTransactionIdentifer = Random.nextLongRandom();		  		TransactionIDUtils.setTransactionId(uniqueTransactionIdentifer); @@ -169,6 +173,15 @@ public abstract class RequestImpl implements IRequest, Serializable{  		else  			Logger.warn("No unique session-identifier FOUND, but it should be allready set into request!?!"); +		//set requester's IP address +		try { +			setGenericDataToSession(DATAID_REQUESTER_IP_ADDRESS, req.getRemoteAddr()); +			 +		} catch (SessionDataStorageException e) { +			Logger.warn("Can not store remote IP address to 'pendingRequest' during an exception." , e); +			 +		} +		  	}  	/** diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/assertion/PVP2AssertionBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/assertion/PVP2AssertionBuilder.java index 200429093..55d8fa1ff 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/assertion/PVP2AssertionBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/assertion/PVP2AssertionBuilder.java @@ -459,8 +459,15 @@ public class PVP2AssertionBuilder implements PVPConstants {  		subjectConfirmationData.setNotOnOrAfter(new DateTime(authData.getSsoSessionValidTo().getTime()));  //		subjectConfirmationData.setNotBefore(date); +		//set 'recipient' attribute in subjectConformationData   		subjectConfirmationData.setRecipient(assertionConsumerService.getLocation()); +		//set IP address of the user machine as 'Address' attribute in subjectConformationData  +		String usersIPAddress = pendingReq.getGenericData( +				PVPTargetConfiguration.DATAID_REQUESTER_IP_ADDRESS, String.class); +		if (MiscUtil.isNotEmpty(usersIPAddress)) +			subjectConfirmationData.setAddress(usersIPAddress); +		  		//set SLO information  		sloInformation.setUserNameIdentifier(subjectNameID.getValue());  		sloInformation.setNameIDFormat(subjectNameID.getFormat()); | 
