diff options
| author | Thomas Lenz <tlenz@iaik.tugraz.at> | 2017-02-01 10:13:45 +0100 | 
|---|---|---|
| committer | Thomas Lenz <tlenz@iaik.tugraz.at> | 2017-02-01 10:13:45 +0100 | 
| commit | ad581c51a726248e566280b63bf09a8d69f38d3e (patch) | |
| tree | a06f4238e5d4e6d6e58ccdc78172bf8f7ca4b97c /id | |
| parent | 6624f0c3ac6f2636cf237b7ebcf602f3efcbfdc9 (diff) | |
| download | moa-id-spss-ad581c51a726248e566280b63bf09a8d69f38d3e.tar.gz moa-id-spss-ad581c51a726248e566280b63bf09a8d69f38d3e.tar.bz2 moa-id-spss-ad581c51a726248e566280b63bf09a8d69f38d3e.zip | |
fix problem with eIDAS response ContentType encoding
Diffstat (limited to 'id')
9 files changed, 16 insertions, 531 deletions
| diff --git a/id/server/idserverlib/src/main/resources/resources/templates/pvp_postbinding_template.html b/id/server/idserverlib/src/main/resources/resources/templates/pvp_postbinding_template.html index 2f93428b5..64e88a688 100644 --- a/id/server/idserverlib/src/main/resources/resources/templates/pvp_postbinding_template.html +++ b/id/server/idserverlib/src/main/resources/resources/templates/pvp_postbinding_template.html @@ -1,9 +1,9 @@  ## ## Velocity Template for SAML 2 HTTP-POST binding ## ## Velocity -context may contain the following properties ## action - String - the -action URL for the form ## RelayState - String - the relay state for the -message ## SAMLRequest - String - the Base64 encoded SAML Request ## -SAMLResponse - String - the Base64 encoded SAML Response - +##context may contain the following properties ## action - String - the +##action URL for the form ## RelayState - String - the relay state for the +##message ## SAMLRequest - String - the Base64 encoded SAML Request ## +##SAMLResponse - String - the Base64 encoded SAML Response +<!DOCTYPE html>  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">  <body onload="document.forms[0].submit()"> diff --git a/id/server/idserverlib/src/main/resources/resources/templates/saml2-post-binding-moa.vm b/id/server/idserverlib/src/main/resources/resources/templates/saml2-post-binding-moa.vm deleted file mode 100644 index 8beb601c6..000000000 --- a/id/server/idserverlib/src/main/resources/resources/templates/saml2-post-binding-moa.vm +++ /dev/null @@ -1,38 +0,0 @@ -## -## Velocity Template for SAML 2 HTTP-POST binding -## -## Velocity context may contain the following properties -## action - String - the action URL for the form -## RelayState - String - the relay state for the message -## SAMLRequest - String - the Base64 encoded SAML Request -## SAMLResponse - String - the Base64 encoded SAML Response -## Contains target attribute to delegate PEPS authentication out of iFrame - -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> - -    <body onload="document.forms[0].submit()"> -        <noscript> -            <p> -                <strong>Note:</strong> Since your browser does not support JavaScript, -                you must press the Continue button once to proceed. -            </p> -        </noscript> -         -        <form action="${action}" method="post" target="_top"> -            <div> -                #if($RelayState)<input type="hidden" name="RelayState" value="${RelayState}"/>#end -                 -                #if($SAMLRequest)<input type="hidden" name="SAMLRequest" value="${SAMLRequest}"/>#end -                 -                #if($SAMLResponse)<input type="hidden" name="SAMLResponse" value="${SAMLResponse}"/>#end -                 -            </div> -            <noscript> -                <div> -                    <input type="submit" value="Continue"/> -                </div> -            </noscript> -        </form> -         -    </body> -</html>
\ No newline at end of file diff --git a/id/server/idserverlib/src/main/resources/resources/templates/stork2_consent.html b/id/server/idserverlib/src/main/resources/resources/templates/stork2_consent.html deleted file mode 100644 index 0ab41f146..000000000 --- a/id/server/idserverlib/src/main/resources/resources/templates/stork2_consent.html +++ /dev/null @@ -1,438 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> - -   <!-- MOA-ID 2.x BKUSelection Layout CSS -->                -    <style type="text/css"> -			@media screen and (min-width: 650px) { -			 -				body { -					margin:0; -					padding:0; -					color : #000; -					background-color : #fff; -			  	text-align: center; -			  	background-color: #6B7B8B; -				} -         -        #bku_header h2 { -          font-size: 0.8em; -        }  -         -         -			  #page { -			    display: block; -			    border: 2px solid rgb(0,0,0); -			    width: 650px; -			    height: 460px; -			    margin: 0 auto; -			    margin-top: 5%; -			    position: relative; -			    border-radius: 25px; -			    background: rgb(255,255,255); -			  } -			   -			  #page1 { -			    text-align: center; -			  } -			   -			  #main { -			    /*	clear:both; */ -				  position:relative; -			    margin: 0 auto; -			    width: 250px; -			    text-align: center; -			  } -			   -			  .OA_header { -			/*	  background-color: white;*/ -			    font-size: 20pt; -			    margin-bottom: 25px; -			    margin-top: 25px; -			  } -			 -			  #leftcontent { -			    /*float:left; */ -				  width:250px; -				  margin-bottom: 25px; -			    text-align: left; -			    border: 1px solid rgb(0,0,0); -			  } -			  			   -			  #selectArea { -				 font-size: 15px; -				 padding-bottom: 65px; -			  } -			 -			  #leftcontent { -				 width: 300px; -				 margin-top: 30px; -			  } -			 -        #bku_header { -          height: 5%; -          padding-bottom: 3px; -          padding-top: 3px; -        } -       -        #bkulogin { -				  overflow:auto;	 -          min-width: 190px; -          height: 260px; -          padding: 20px; -			  } -       -        h2#tabheader{ -				  font-size: 1.1em;  -          padding-left: 2%; -          padding-right: 2%; -          position: relative; -			  } -        		   -			  .setAssertionButton_full { -			  	background: #efefef; -				  cursor: pointer; -				  margin-top: 15px; -			    width: 100px; -			    height: 30px -			  } -			 -			  #leftbutton  { -				 width: 30%;  -				 float:left;  -				 margin-left: 40px; -			  } -			 -			  #rightbutton { -				 width: 30%;  -				 float:right;  -				 margin-right: 45px;  -				 text-align: right; -			  } -         -        button { -          height: 25px; -          width: 75px; -          margin-bottom: 10px; -        } -         -       #validation { -        position: absolute; -        bottom: 0px; -        margin-left: 270px; -        padding-bottom: 10px; -      } -			 -			} - -      @media screen and (max-width: 205px) {         -        #bku_header h2 { -          font-size: 0.8em; -          margin-top: -0.4em; -          padding-top: 0.4em; -        } -         -        #bkulogin { -        min-height: 150px; -        padding: 20px; -        }  -      } - -      @media screen and (max-width: 249px) and (min-width: 206px) {         -        #bku_header h2 { -          font-size: 0.9em; -          margin-top: -0.45em; -          padding-top: 0.45em; -        } -         -        #bkulogin { -          height: 180px; -          padding: 20px; -        }   -      } - -      @media screen and (max-width: 299px) and (min-width: 250px) { -        #bku_header h2 { -          font-size: 1.1em; -          margin-top: -0.55em; -          padding-top: 0.55em; -        }  -      } -       -      @media screen and (max-width: 649px) and (min-width: 400px) { -        #bku_header h2 { -          font-size: 1.3em; -          margin-top: -0.65em; -          padding-top: 0.65em; -        }  -      } - - -			 -			@media screen and (max-width: 649px) { -				 -        body { -					margin:0; -					padding:0; -					color : #000; -			  	text-align: center; -          font-size: 100%; -			  	background-color: ${MAIN_BACKGOUNDCOLOR}; -				} -        				 -			  #page { -			     visibility: hidden; -			     margin-top: 0%; -			  } -			   -			  #page1 { -			    visibility: hidden; -			  } -			   -			  #main { -			    visibility: hidden; -			  } -         -        #validation { -          visibility: hidden; -          display: none; -        } -			   -			  .OA_header { -			    margin-bottom: 0px; -			    margin-top: 0px; -			    font-size: 0pt; -			    visibility: hidden; -			  } -			 -			  #leftcontent { -			    visibility: visible; -			    margin-bottom: 0px; -			    text-align: left; -			    border:none; -          vertical-align: middle; -          min-height: 173px; -          min-width: 204px; -           -			  } -			   -        #bku_header { -          height: 10%; -          min-height: 1.2em; -          margin-top: 1%; -        } -         -        h2#tabheader{ -          padding-left: 2%; -          padding-right: 2%; -          position: relative; -          top: 50%; -			  } -         -       	#bkulogin {	 -          min-width: 190px; -          height: 155px;	 -          padding: 20px; -			 } -         -			 .setAssertionButton_full { -			     	background: #efefef; -				    cursor: pointer; -				    margin-top: 15px; -			      width: 70px; -			      height: 25px; -			 } -        -        input[type=button] { -/*          height: 11%;  */ -          width: 70%; -        } -			} -			       -			* { -				margin: 0; -				padding: 0; -        font-family: ${FONTTYPE}; -			} -							      			 -			#selectArea { -				padding-top: 10px; -				padding-bottom: 55px; -				padding-left: 10px; -			} -			 -			.setAssertionButton { -				background: #efefef; -				cursor: pointer; -				margin-top: 15px; -			  width: 70px; -			  height: 25px; -			} -			 -			#leftbutton  { -				width: 35%;  -				float:left;  -				margin-left: 15px; -			} -			 -			#rightbutton { -				width: 35%;  -				float:right;  -				margin-right: 25px;  -				text-align: right; -			} -       -      .verticalcenter { -        vertical-align: middle; -      } -       -			input { -				/*border:1px solid #000;*/ -				cursor: pointer; -			} -       - -			#installJava, #BrowserNOK { -				clear:both; -				font-size:0.8em; -				padding:4px; -			} -						 -			.selectText{ -			 -			} -			 -			.selectTextHeader{ -			 -			} -			 -			.sendButton { -        width: 30%; -        margin-bottom: 1%;	 -			} -			 -			#leftcontent a { -				text-decoration:none;  -				color: #000; -			/*	display:block;*/ -				padding:4px;	 -			} -			 -			#leftcontent a:hover, #leftcontent a:focus, #leftcontent a:active { -				text-decoration:underline; -				color: #000;	 -			} -						 -			.infobutton { -				background-color: #005a00; -				color: white; -				font-family: serif; -				text-decoration: none; -				padding-top: 2px; -				padding-right: 4px; -				padding-bottom: 2px; -				padding-left: 4px; -				font-weight: bold; -			} -			 -			.hell { -				background-color : ${MAIN_BACKGOUNDCOLOR}; -        color: ${MAIN_COLOR};	 -			} -			 -			.dunkel { -				background-color: ${HEADER_BACKGROUNDCOLOR}; -        color: ${HEADER_COLOR}; -			} -			       -			.main_header { -			   color: black; -			    font-size: 32pt; -			    position: absolute; -			    right: 10%; -			    top: 40px; -				 -			} -			 -			#controls { -				text-align: right; -			} -      			                         -    </style>        -<!-- MOA-ID 2.x BKUSelection JavaScript fucnctions--> -<script type="text/javascript"> -		function isIE() { -			return (/MSIE (\d+\.\d+);/.test(navigator.userAgent)); -		} -		function isFullscreen() { -			try { -				return ((top.innerWidth == screen.width) && (top.innerHeight == screen.height)); -			} catch (e) { -				return false; -			} -		} -		function isActivexEnabled() { -			var supported = null; -			try { -				supported = !!new ActiveXObject("htmlfile"); -			} catch (e) { -				supported = false; -			} -			return supported; -		} -		function generateIFrame(iFrameURL) { -			var el = document.getElementById("bkulogin"); -      var width = el.clientWidth; -      var heigth = el.clientHeight - 20; -			var parent = el.parentNode; -             -      iFrameURL += "&heigth=" + heigth; -      iFrameURL += "&width=" + width; -       -			var iframe = document.createElement("iframe"); -			iframe.setAttribute("src", iFrameURL); -			iframe.setAttribute("width", el.clientWidth - 1); -			iframe.setAttribute("height", el.clientHeight - 1); -			iframe.setAttribute("frameborder", "0"); -			iframe.setAttribute("scrolling", "no"); -			iframe.setAttribute("title", "Login"); -			parent.replaceChild(iframe, el); -		} -		function onChangeChecks() { -      if (top.innerWidth < 650) { -         document.getElementById("moaidform").setAttribute("target","_parent"); -      } else { -         document.getElementById("moaidform").removeAttribute("target"); -      } -       -    } -	</script> -<title>Informationsfreigabe</title> -</head> -<body onload="onChangeChecks();" onresize="onChangeChecks();"> -	<div id="page"> -		<div id="page1" class="case selected-case" role="main"> -			<h2 class="OA_header" role="heading">STORK Informationsfreigabe</h2> -			<div id="main"> -				<div id="leftcontent" class="hell" role="application"> -					<form method="POST" action="${action}"> -						<div id="bku_header" class="dunkel"> -							<h2 id="tabheader" class="dunkel" role="heading">STORK Informationsfreigabe</h2> -						</div> -						<div id="bkulogin" class="hell" role="form"> -							Wählen Sie jene Daten, die, wenn verfügbar, an ein Drittland weitergegeben werden sollen:</br> -	  						<table> -	  							${tablecontent} -							</table> -						</div> -						<div id="controls" class="hell"> -							<input type="submit" value="weiter" /> -						</div> -					</form> -				</div> -			</div> -		</div> -	</div> -</body> -</html>
\ No newline at end of file diff --git a/id/server/idserverlib/src/main/resources/resources/templates/stork2_postbinding_template.html b/id/server/idserverlib/src/main/resources/resources/templates/stork2_postbinding_template.html deleted file mode 100644 index f901351a2..000000000 --- a/id/server/idserverlib/src/main/resources/resources/templates/stork2_postbinding_template.html +++ /dev/null @@ -1,42 +0,0 @@ -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> - -<body onload="document.forms[0].submit()"> -	<noscript> -		<p> -			<strong>Note:</strong> Since your browser does not support -			JavaScript, you must press the Continue button once to proceed. -		</p> -	</noscript> - - -	<div id="alert">Your login is being processed. Thank you for -		waiting.</div> - -	<style type="text/css"> -<!-- -#alert { -	margin: 100px 250px; -	font-family: Verdana, Arial, Helvetica, sans-serif; -	font-size: 14px; -	font-weight: normal; -} ---> -</style> - -	<form action="${action}" method="post" target="_self"> -		<div> -			#if($RelayState)<input type="hidden" name="RelayState" -				value="${RelayState}" />#end #if($SAMLRequest)<input type="hidden" -				name="SAMLRequest" value="${SAMLRequest}" />#end #if($SAMLResponse)<input -				type="hidden" name="SAMLResponse" value="${SAMLResponse}" />#end - -		</div> -		<noscript> -			<div> -				<input type="submit" value="Continue" /> -			</div> -		</noscript> -	</form> - -</body> -</html> diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/MOAIDConstants.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/MOAIDConstants.java index 6d573efe8..e9f9a7e80 100644 --- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/MOAIDConstants.java +++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/MOAIDConstants.java @@ -36,6 +36,8 @@ public class MOAIDConstants {  	//general configuration constants +	public static final String DEFAULT_CONTENT_TYPE_HTML_UTF8 = "text/html; charset=UTF-8"; +	  	public static final String FILE_URI_PREFIX = "file:/";  	public static final String PREFIX_WPBK = "urn:publicid:gv.at:wbpk+"; diff --git a/id/server/moa-id-frontend-resources/src/main/java/at/gv/egovernment/moa/id/auth/frontend/builder/GUIFormBuilderImpl.java b/id/server/moa-id-frontend-resources/src/main/java/at/gv/egovernment/moa/id/auth/frontend/builder/GUIFormBuilderImpl.java index e77933986..e8cd60afb 100644 --- a/id/server/moa-id-frontend-resources/src/main/java/at/gv/egovernment/moa/id/auth/frontend/builder/GUIFormBuilderImpl.java +++ b/id/server/moa-id-frontend-resources/src/main/java/at/gv/egovernment/moa/id/auth/frontend/builder/GUIFormBuilderImpl.java @@ -43,6 +43,7 @@ import org.springframework.stereotype.Service;  import at.gv.egovernment.moa.id.auth.frontend.exception.GUIBuildException;  import at.gv.egovernment.moa.id.auth.frontend.velocity.VelocityProvider; +import at.gv.egovernment.moa.id.commons.MOAIDConstants;  import at.gv.egovernment.moa.id.commons.api.AuthConfiguration;  import at.gv.egovernment.moa.logging.Logger;  import at.gv.egovernment.moa.util.MiscUtil; @@ -54,7 +55,7 @@ import at.gv.egovernment.moa.util.MiscUtil;  @Service("guiFormBuilder")  public class GUIFormBuilderImpl implements IGUIFormBuilder { -	private static final String DEFAULT_CONTENT_TYPE = "text/html; charset=UTF-8"; +	private static final String DEFAULT_CONTENT_TYPE = MOAIDConstants.DEFAULT_CONTENT_TYPE_HTML_UTF8;  	private static final String CONFIG_HTMLTEMPLATES_DIR = "htmlTemplates/";  	private static final String CLASSPATH_HTMLTEMPLATES_DIR = "templates/"; diff --git a/id/server/modules/moa-id-module-eIDAS/src/main/java/at/gv/egovernment/moa/id/protocols/eidas/EIDASProtocol.java b/id/server/modules/moa-id-module-eIDAS/src/main/java/at/gv/egovernment/moa/id/protocols/eidas/EIDASProtocol.java index 13e64cdd0..aefae939b 100644 --- a/id/server/modules/moa-id-module-eIDAS/src/main/java/at/gv/egovernment/moa/id/protocols/eidas/EIDASProtocol.java +++ b/id/server/modules/moa-id-module-eIDAS/src/main/java/at/gv/egovernment/moa/id/protocols/eidas/EIDASProtocol.java @@ -36,7 +36,6 @@ import org.opensaml.saml2.core.StatusCode;  import org.opensaml.saml2.metadata.AssertionConsumerService;  import org.opensaml.saml2.metadata.EntityDescriptor;  import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.MediaType;  import org.springframework.stereotype.Controller;  import org.springframework.web.bind.annotation.RequestMapping;  import org.springframework.web.bind.annotation.RequestMethod; @@ -51,6 +50,7 @@ import at.gv.egovernment.moa.id.auth.modules.eidas.exceptions.EIDASAuthnRequestV  import at.gv.egovernment.moa.id.auth.modules.eidas.exceptions.EIDASException;  import at.gv.egovernment.moa.id.auth.modules.eidas.utils.SAMLEngineUtils;  import at.gv.egovernment.moa.id.commons.MOAIDAuthConstants; +import at.gv.egovernment.moa.id.commons.MOAIDConstants;  import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;  import at.gv.egovernment.moa.id.commons.api.IRequest;  import at.gv.egovernment.moa.id.commons.api.exceptions.MOAIDException; @@ -367,7 +367,7 @@ public class EIDASProtocol extends AbstractAuthProtocolModulController {          		String token = EidasStringUtil.encodeToBase64(eIDASRespMsg.getMessageBytes());                  VelocityEngine velocityEngine = VelocityProvider.getClassPathVelocityEngine(); -                Template template = velocityEngine.getTemplate("/resources/templates/stork2_postbinding_template.html"); +                Template template = velocityEngine.getTemplate("/resources/templates/eidas_postbinding_template.vm");                  VelocityContext context = new VelocityContext();                  context.put("RelayState", eidasReq.getRemoteRelayState()); @@ -387,7 +387,7 @@ public class EIDASProtocol extends AbstractAuthProtocolModulController {                  Logger.trace("Sending html content  : " + new String(writer.getBuffer()));                  byte[] content = writer.getBuffer().toString().getBytes("UTF-8");              -                response.setContentType(MediaType.TEXT_HTML.getType()); +                response.setContentType(MOAIDConstants.DEFAULT_CONTENT_TYPE_HTML_UTF8);                  response.setContentLength(content.length);                  response.getOutputStream().write(content); diff --git a/id/server/modules/moa-id-module-eIDAS/src/main/java/at/gv/egovernment/moa/id/protocols/eidas/eIDASAuthenticationRequest.java b/id/server/modules/moa-id-module-eIDAS/src/main/java/at/gv/egovernment/moa/id/protocols/eidas/eIDASAuthenticationRequest.java index 22ac37604..97241af6a 100644 --- a/id/server/modules/moa-id-module-eIDAS/src/main/java/at/gv/egovernment/moa/id/protocols/eidas/eIDASAuthenticationRequest.java +++ b/id/server/modules/moa-id-module-eIDAS/src/main/java/at/gv/egovernment/moa/id/protocols/eidas/eIDASAuthenticationRequest.java @@ -34,7 +34,6 @@ import org.apache.velocity.VelocityContext;  import org.apache.velocity.app.VelocityEngine;  import org.opensaml.saml2.core.StatusCode;  import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.MediaType;  import org.springframework.stereotype.Service;  import com.google.common.collect.ImmutableSet; @@ -44,6 +43,7 @@ import at.gv.egovernment.moa.id.auth.frontend.velocity.VelocityProvider;  import at.gv.egovernment.moa.id.auth.modules.eidas.Constants;  import at.gv.egovernment.moa.id.auth.modules.eidas.engine.MOAeIDASChainingMetadataProvider;  import at.gv.egovernment.moa.id.auth.modules.eidas.utils.SimpleEidasAttributeGenerator; +import at.gv.egovernment.moa.id.commons.MOAIDConstants;  import at.gv.egovernment.moa.id.commons.api.IRequest;  import at.gv.egovernment.moa.id.commons.api.exceptions.MOAIDException;  import at.gv.egovernment.moa.id.data.IAuthData; @@ -233,7 +233,7 @@ public class eIDASAuthenticationRequest implements IAction {  		// send the response          try {              VelocityEngine velocityEngine = VelocityProvider.getClassPathVelocityEngine(); -            Template template = velocityEngine.getTemplate("/resources/templates/stork2_postbinding_template.html"); +            Template template = velocityEngine.getTemplate("/resources/templates/eidas_postbinding_template.vm");              VelocityContext context = new VelocityContext();              context.put("RelayState", eidasRequest.getRemoteRelayState()); @@ -253,7 +253,7 @@ public class eIDASAuthenticationRequest implements IAction {              Logger.trace("Sending html content  : " + new String(writer.getBuffer()));              byte[] content = writer.getBuffer().toString().getBytes("UTF-8"); -            httpResp.setContentType(MediaType.TEXT_HTML.getType()); +            httpResp.setContentType(MOAIDConstants.DEFAULT_CONTENT_TYPE_HTML_UTF8);              httpResp.setContentLength(content.length);              httpResp.getOutputStream().write(content); diff --git a/id/server/modules/moa-id-module-eIDAS/src/main/resources/resources/templates/eidas_postbinding_template.vm b/id/server/modules/moa-id-module-eIDAS/src/main/resources/resources/templates/eidas_postbinding_template.vm index 3bd225b00..0535d48b6 100644 --- a/id/server/modules/moa-id-module-eIDAS/src/main/resources/resources/templates/eidas_postbinding_template.vm +++ b/id/server/modules/moa-id-module-eIDAS/src/main/resources/resources/templates/eidas_postbinding_template.vm @@ -7,7 +7,7 @@  ## SAMLRequest - String - the Base64 encoded SAML Request  ## SAMLResponse - String - the Base64 encoded SAML Response  ## Contains target attribute to delegate PEPS authentication out of iFrame - +<!DOCTYPE html>  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">  		<head>  			<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> | 
