diff options
| author | Thomas Lenz <tlenz@iaik.tugraz.at> | 2013-10-11 14:00:05 +0200 | 
|---|---|---|
| committer | Thomas Lenz <tlenz@iaik.tugraz.at> | 2013-10-11 14:00:05 +0200 | 
| commit | 550ba6452a44cd93066fc5317de626d21758901b (patch) | |
| tree | cfe49f04d9c8c2c06e8e4353e5bd676e6e963530 /id/server/idserverlib | |
| parent | 663ad546237fe9102c97e0eed2970e703d3034d9 (diff) | |
| download | moa-id-spss-550ba6452a44cd93066fc5317de626d21758901b.tar.gz moa-id-spss-550ba6452a44cd93066fc5317de626d21758901b.tar.bz2 moa-id-spss-550ba6452a44cd93066fc5317de626d21758901b.zip | |
-- Customizable BKUSelection Form and SendAssertion Form
-- OA specific Checkbox to disable SAML1
Diffstat (limited to 'id/server/idserverlib')
15 files changed, 1476 insertions, 207 deletions
| diff --git a/id/server/idserverlib/pom.xml b/id/server/idserverlib/pom.xml index 8f3dd9630..62752e9f4 100644 --- a/id/server/idserverlib/pom.xml +++ b/id/server/idserverlib/pom.xml @@ -31,12 +31,12 @@  			<artifactId>moa-common</artifactId>
  			<type>jar</type>
  		</dependency>
 -<!-- 		<dependency>
 + 		<dependency>
  			<groupId>MOA</groupId>
  			<artifactId>moa-common</artifactId>
  			<type>test-jar</type>
  			<scope>test</scope>
 -		</dependency> -->
 +		</dependency>
  		<dependency>
  			<groupId>MOA.spss.server</groupId>
  			<artifactId>moa-spss-lib</artifactId>
 diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java index 25f0ba1d3..84f85b3d6 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java @@ -49,6 +49,7 @@ import javax.servlet.http.HttpSession;  import javax.xml.parsers.ParserConfigurationException;  import javax.xml.transform.TransformerException; +import org.apache.commons.lang.StringEscapeUtils;  import org.apache.xpath.XPathAPI;  import org.opensaml.saml2.metadata.RequestedAttribute;  import org.opensaml.xml.util.Base64; @@ -212,7 +213,7 @@ public class AuthenticationServer implements MOAIDAuthConstants {  	 * @param templateMandteURL  	 *            URL providing an HTML template for the HTML form generated  	 *            (for signing in mandates mode) -	 * @param scheme +	 * @param req  	 *            determines the protocol used  	 * @param sourceID  	 * @return HTML form @@ -220,7 +221,7 @@ public class AuthenticationServer implements MOAIDAuthConstants {  	 * @see GetIdentityLinkFormBuilder  	 * @see InfoboxReadRequestBuilder  	 */ -	public String startAuthentication(AuthenticationSession session, String scheme) throws WrongParametersException, +	public String startAuthentication(AuthenticationSession session, HttpServletRequest req) throws WrongParametersException,  			AuthenticationException, ConfigurationException, BuildException {  		if (session == null) { @@ -289,9 +290,15 @@ public class AuthenticationServer implements MOAIDAuthConstants {  				.buildDataURL(session.getAuthURL(), REQ_START_AUTHENTICATION,  						session.getSessionID()); +		//get Applet Parameters +    	String appletwidth = req.getParameter(PARAM_APPLET_WIDTH); +    	String appletheigth = req.getParameter(PARAM_APPLET_HEIGTH); +    	appletheigth = StringEscapeUtils.escapeHtml(appletheigth); +    	appletwidth = StringEscapeUtils.escapeHtml(appletwidth); +		  		String htmlForm = new GetIdentityLinkFormBuilder().build(template,  				session.getBkuURL(), infoboxReadRequest, dataURL, certInfoRequest, -				certInfoDataURL, pushInfobox, oaParam); +				certInfoDataURL, pushInfobox, oaParam, appletheigth, appletwidth);  		return htmlForm;  	} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/MOAIDAuthConstants.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/MOAIDAuthConstants.java index c17b86c46..264a4f68b 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/MOAIDAuthConstants.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/MOAIDAuthConstants.java @@ -149,4 +149,7 @@ public interface MOAIDAuthConstants {    public final static String EXT_SAML_MANDATE_REPRESENTATIONTEXT = "Vollmachtsvertreter";    public final static String EXT_SAML_MANDATE_CB_BASE_ID = "MandatorDomainIdentifier"; +  public static final String PARAM_APPLET_HEIGTH = "heigth"; +  public static final String PARAM_APPLET_WIDTH = "width"; +    } diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/GetIdentityLinkFormBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/GetIdentityLinkFormBuilder.java index ceffd90dc..7753b4011 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/GetIdentityLinkFormBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/GetIdentityLinkFormBuilder.java @@ -27,9 +27,11 @@ package at.gv.egovernment.moa.id.auth.builder;  import java.io.IOException;  import java.io.StringReader;  import java.io.StringWriter; +import java.util.Map;  import at.gv.egovernment.moa.id.auth.exception.BuildException;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; +import at.gv.egovernment.moa.id.util.FormBuildUtils;  import at.gv.egovernment.moa.util.MiscUtil;  /** @@ -55,9 +57,13 @@ public class GetIdentityLinkFormBuilder extends Builder {    /** special tag in the HTML template to be substituted for the infoboxes to be pushed from the BKU */    private static final String PUSHINFOBOX_TAG = "<PushInfobox>";    /** special tag in the HTML template to be substituted for the BKU URL */ -  private static final String COLOR_TAG = "<COLOR>";    /** private static int all contains the representation to replace all tags*/    private static final int ALL = -1; +   +  private static final String COLOR_TAG = "<COLOR>"; +  private static final String REDIRECTTARGETTAG = "<REDIRECTTARGET>"; +  private static final String APPLETWIDTH_TAG = "<APPLETWIDTH>"; +  private static final String APPLETHEIGHT_TAG = "<APPLETHEIGHT>";    /** default HTML template */    private static final String DEFAULT_HTML_TEMPLATE =  @@ -115,6 +121,8 @@ public class GetIdentityLinkFormBuilder extends Builder {     *         may be <code>null</code>, in this case the default URL will be used     * @param dataURL DataURL to be sent as a parameter in the form   * @param oaParam  + * @param appletwidth  + * @param appletheigth      */    public String build(    	String htmlTemplate,  @@ -123,7 +131,9 @@ public class GetIdentityLinkFormBuilder extends Builder {      String dataURL,       String certInfoXMLRequest,       String certInfoDataURL,  -    String pushInfobox, OAAuthParameter oaParam) +    String pushInfobox, OAAuthParameter oaParam,  +    String appletheigth, +    String appletwidth)    throws BuildException     {          	String htmlForm = htmlTemplate == null ? DEFAULT_HTML_TEMPLATE : htmlTemplate; @@ -136,14 +146,24 @@ public class GetIdentityLinkFormBuilder extends Builder {      htmlForm = replaceTag(htmlForm, CERTINFO_DATAURL_TAG, certInfoDataURL, true, ALL);      if (oaParam != null) { -    	if (MiscUtil.isNotEmpty(oaParam.getBKUSelectionBackGroundColor())) -    		htmlForm = replaceTag(htmlForm, COLOR_TAG, oaParam.getBKUSelectionBackGroundColor(), false, ALL); -    	else -    		htmlForm = replaceTag(htmlForm, COLOR_TAG, "#DDDDDD", false, ALL); -    	 -    } else -    	htmlForm = replaceTag(htmlForm, COLOR_TAG, "#DDDDDD", false, ALL); +    	Map<String, String> map = oaParam.getFormCustomizaten(); +    	htmlForm = replaceTag(htmlForm, COLOR_TAG, map.get(FormBuildUtils.MAIN_BACKGROUNDCOLOR), false, ALL); +    	htmlForm = replaceTag(htmlForm, REDIRECTTARGETTAG, map.get(FormBuildUtils.REDIRECTTARGET), false, ALL); +    	    	 +    } else { +    	htmlForm = replaceTag(htmlForm, COLOR_TAG, FormBuildUtils.getDefaultMap().get(FormBuildUtils.MAIN_BACKGROUNDCOLOR), false, ALL); +		htmlForm = replaceTag(htmlForm, REDIRECTTARGETTAG, FormBuildUtils.getDefaultMap().get(FormBuildUtils.REDIRECTTARGET), false, ALL); +    } +     +    if (MiscUtil.isNotEmpty(appletheigth)) +    	htmlForm = replaceTag(htmlForm, APPLETHEIGHT_TAG, appletheigth, true, ALL); +    else +    	htmlForm = replaceTag(htmlForm, APPLETHEIGHT_TAG, "160", true, ALL); +    if (MiscUtil.isNotEmpty(appletwidth)) +    	htmlForm = replaceTag(htmlForm, APPLETWIDTH_TAG, appletwidth, true, ALL); +    else +    	htmlForm = replaceTag(htmlForm, APPLETWIDTH_TAG, "250", true, ALL);    	return htmlForm;    } diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/LoginFormBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/LoginFormBuilder.java index 789651f16..729af48f7 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/LoginFormBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/LoginFormBuilder.java @@ -13,6 +13,7 @@ import org.apache.commons.io.IOUtils;  import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProvider;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter;  import at.gv.egovernment.moa.id.protocols.saml1.SAML1Protocol; +import at.gv.egovernment.moa.id.util.FormBuildUtils;  import at.gv.egovernment.moa.logging.Logger;  import at.gv.egovernment.moa.util.MiscUtil; @@ -20,12 +21,7 @@ public class LoginFormBuilder {  	private static final String HTMLTEMPLATESDIR = "htmlTemplates/";  	private static final String HTMLTEMPLATEFULL = "loginFormFull.html"; -	 -	private static final String TEMPLATEBGCOLOR = "style=\"background-color: #COLOR#\""; -	private static final String TEMPLATEVISIBLE = " display: none"; -	private static final String TEMPLATEDISABLED =  "disabled=\"true\""; -	private static final String TEMPLATECHECKED = "checked=\"true\""; -	 +		  	private static String AUTH_URL = "#AUTH_URL#";  	private static String MODUL = "#MODUL#";  	private static String ACTION = "#ACTION#"; @@ -35,11 +31,7 @@ public class LoginFormBuilder {  	private static String BKU_LOCAL =  "#LOCAL#";   	private static String CONTEXTPATH = "#CONTEXTPATH#";  	private static String MOASESSIONID = "#SESSIONID#"; -	private static String BACKGROUNDCOLOR = "#BACKGROUNDCOLOR#"; -	private static String COLOR = "#COLOR#"; -	private static String MANDATEVISIBLE = "#MANDATEVISIBLE#"; -	private static String MANDATECHECKED = "#MANDATECHECKED#"; - +		  	private static String SERVLET = CONTEXTPATH+"/GenerateIframeTemplate";  	private static String getTemplate() { @@ -107,24 +99,8 @@ public class LoginFormBuilder {  			value = value.replace(CONTEXTPATH, contextpath);  			value = value.replace(MOASESSIONID, moaSessionID); -			String bgcolor = oaParam.getBKUSelectionBackGroundColor(); -			if (MiscUtil.isNotEmpty(bgcolor)) { -				value = value.replace(BACKGROUNDCOLOR, TEMPLATEBGCOLOR); -				value = value.replace(COLOR, bgcolor); -			} else -				value = value.replace(BACKGROUNDCOLOR, ""); -			 -			if (oaParam.isShowMandateCheckBox()) -				value = value.replace(MANDATEVISIBLE, ""); -			else -				value = value.replace(MANDATEVISIBLE, TEMPLATEVISIBLE); -			 -			if (oaParam.isOnlyMandateAllowed()) { -				value = value.replace(MANDATECHECKED, TEMPLATECHECKED + " " + TEMPLATEDISABLED); -				 -			} else -				value = value.replace(MANDATECHECKED, ""); -			 +			value = FormBuildUtils.customiceLayoutBKUSelection(value, oaParam); +						  		}  		return value;  	} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/SendAssertionFormBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/SendAssertionFormBuilder.java index cd8750ad0..1617ef796 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/SendAssertionFormBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/SendAssertionFormBuilder.java @@ -13,6 +13,7 @@ import org.apache.commons.io.IOUtils;  import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProvider;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter;  import at.gv.egovernment.moa.id.protocols.saml1.SAML1Protocol; +import at.gv.egovernment.moa.id.util.FormBuildUtils;  import at.gv.egovernment.moa.logging.Logger;  import at.gv.egovernment.moa.util.MiscUtil; @@ -97,13 +98,8 @@ public class SendAssertionFormBuilder {  			value = value.replace(OANAME, oaParam.getFriendlyName());  			value = value.replace(CONTEXTPATH, contextpath); -			String bgcolor = oaParam.getBKUSelectionBackGroundColor(); -			if (MiscUtil.isNotEmpty(bgcolor)) { -				value = value.replace(BACKGROUNDCOLOR, TEMPLATEBGCOLOR); -				value = value.replace(COLOR, bgcolor); -			} else -				value = value.replace(BACKGROUNDCOLOR, ""); -			 +			value = FormBuildUtils.customiceLayoutBKUSelection(value, oaParam); +						  		}  		return value;  	} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/StartAuthenticationBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/StartAuthenticationBuilder.java index c00aa38c5..3bc152ec8 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/StartAuthenticationBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/StartAuthenticationBuilder.java @@ -48,7 +48,7 @@ public class StartAuthenticationBuilder {  	    	//normal MOA-ID authentication  	    	Logger.debug("Starting normal MOA-ID authentication"); -	    	String getIdentityLinkForm = AuthenticationServer.getInstance().startAuthentication(moasession, req.getScheme());	    +	    	String getIdentityLinkForm = AuthenticationServer.getInstance().startAuthentication(moasession, req);	     	    	return getIdentityLinkForm;  	    } diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/GenerateIFrameTemplateServlet.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/GenerateIFrameTemplateServlet.java index cdd5cd384..98ef78d53 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/GenerateIFrameTemplateServlet.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/GenerateIFrameTemplateServlet.java @@ -8,6 +8,8 @@ import javax.servlet.ServletException;  import javax.servlet.http.HttpServletRequest;  import javax.servlet.http.HttpServletResponse; +import org.apache.commons.lang.StringEscapeUtils; +  import at.gv.egovernment.moa.id.auth.MOAIDAuthInitializer;  import at.gv.egovernment.moa.id.auth.builder.StartAuthenticationBuilder;  import at.gv.egovernment.moa.id.auth.data.AuthenticationSession; @@ -53,6 +55,8 @@ public class GenerateIFrameTemplateServlet extends AuthServlet {  	    	String useMandate = req.getParameter(PARAM_USEMANDATE);  	    	String ccc = req.getParameter(PARAM_CCC);  	    	String moasessionid = req.getParameter(PARAM_SESSIONID); +	    		    	 +	    	moasessionid = StringEscapeUtils.escapeHtml(moasessionid);  	    	AuthenticationSession moasession = null; diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/OAAuthParameter.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/OAAuthParameter.java index e1f527040..3c4234114 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/OAAuthParameter.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/OAAuthParameter.java @@ -25,7 +25,9 @@  package at.gv.egovernment.moa.id.config.auth;  import java.util.ArrayList; +import java.util.HashMap;  import java.util.List; +import java.util.Map;  import at.gv.egovernment.moa.id.commons.db.dao.config.AuthComponentOA;  import at.gv.egovernment.moa.id.commons.db.dao.config.BKUSelectionCustomizationType; @@ -41,6 +43,7 @@ import at.gv.egovernment.moa.id.commons.db.dao.config.TemplatesType;  import at.gv.egovernment.moa.id.commons.db.dao.config.TransformsInfoType;  import at.gv.egovernment.moa.id.config.ConfigurationUtils;  import at.gv.egovernment.moa.id.config.OAParameter; +import at.gv.egovernment.moa.id.util.FormBuildUtils;  import at.gv.egovernment.moa.logging.Logger;  import at.gv.egovernment.moa.util.MiscUtil;  import eu.stork.vidp.messages.builder.STORKMessagesBuilder; @@ -235,18 +238,6 @@ public String getIdentityLinkDomainIdentifierType() {  	return null;  } -public String getBKUSelectionBackGroundColor() { -	TemplatesType templates = oa_auth.getTemplates(); -	if (templates != null) { -		BKUSelectionCustomizationType bkuselection = templates.getBKUSelectionCustomization(); -		if (bkuselection != null) { -			if (MiscUtil.isNotEmpty(bkuselection.getBackGroundColor())) -				return bkuselection.getBackGroundColor(); -		} -	} -	return null; -} -  public boolean isShowMandateCheckBox() {  	TemplatesType templates = oa_auth.getTemplates(); @@ -272,6 +263,51 @@ public boolean isOnlyMandateAllowed() {  	return false;  } +public Map<String, String> getFormCustomizaten() { +	TemplatesType templates = oa_auth.getTemplates(); +	 +	Map<String, String> map = new HashMap<String, String>(); +	map.putAll(FormBuildUtils.getDefaultMap()); +	 +	if (templates != null) { +		BKUSelectionCustomizationType bkuselection = templates.getBKUSelectionCustomization(); +		if (bkuselection != null) { +			if (MiscUtil.isNotEmpty(bkuselection.getBackGroundColor())) +				map.put(FormBuildUtils.MAIN_BACKGROUNDCOLOR, bkuselection.getBackGroundColor()); +			 +			if (MiscUtil.isNotEmpty(bkuselection.getButtonBackGroundColor())) +				map.put(FormBuildUtils.BUTTON_BACKGROUNDCOLOR, bkuselection.getButtonBackGroundColor()); +			 +			if (MiscUtil.isNotEmpty(bkuselection.getButtonBackGroundColorFocus())) +				map.put(FormBuildUtils.BUTTON_BACKGROUNDCOLOR_FOCUS, bkuselection.getButtonBackGroundColorFocus()); +			 +			if (MiscUtil.isNotEmpty(bkuselection.getButtonFontColor())) +				map.put(FormBuildUtils.BUTTON_COLOR, bkuselection.getButtonFontColor()); +			 +			if (MiscUtil.isNotEmpty(bkuselection.getFontType())) +				map.put(FormBuildUtils.FONTFAMILY, bkuselection.getFontType()); +			 +			if (MiscUtil.isNotEmpty(bkuselection.getFrontColor())) +				map.put(FormBuildUtils.MAIN_COLOR, bkuselection.getFrontColor()); +			 +			if (MiscUtil.isNotEmpty(bkuselection.getHeaderBackGroundColor())) +				map.put(FormBuildUtils.HEADER_BACKGROUNDCOLOR, bkuselection.getHeaderBackGroundColor()); +			 +			if (MiscUtil.isNotEmpty(bkuselection.getHeaderFrontColor())) +				map.put(FormBuildUtils.HEADER_COLOR, bkuselection.getHeaderFrontColor()); +			 +			if (MiscUtil.isNotEmpty(bkuselection.getHeaderText())) +				map.put(FormBuildUtils.HEADER_TEXT, bkuselection.getHeaderText()); +			 +			if (MiscUtil.isNotEmpty(bkuselection.getAppletRedirectTarget())) +				map.put(FormBuildUtils.REDIRECTTARGET, bkuselection.getAppletRedirectTarget()); +			 +		} +	} +	 +	return map; +} +  /**   * @return the qaaLevel   */ diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/legacy/BuildFromLegacyConfig.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/legacy/BuildFromLegacyConfig.java index c7ab2d4c4..7ef043abe 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/legacy/BuildFromLegacyConfig.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/legacy/BuildFromLegacyConfig.java @@ -465,6 +465,7 @@ public class BuildFromLegacyConfig {  	        	oa_saml1.setProvideIdentityLink(oa.getProvideIdentityLink());  	        	oa_saml1.setProvideStammzahl(oa.getProvideStammzahl());  	        	oa_saml1.setUseCondition(oa.getUseCondition()); +	        	oa_saml1.setIsActive(true);  	        	//OA_PVP2  	        	OAPVP2 oa_pvp2 = new OAPVP2(); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/SAML1Protocol.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/SAML1Protocol.java index 9d163032e..21aedb50b 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/SAML1Protocol.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/SAML1Protocol.java @@ -12,6 +12,7 @@ import at.gv.egovernment.moa.id.auth.exception.AuthenticationException;  import at.gv.egovernment.moa.id.auth.exception.MOAIDException;  import at.gv.egovernment.moa.id.auth.exception.WrongParametersException;  import at.gv.egovernment.moa.id.auth.servlet.RedirectServlet; +import at.gv.egovernment.moa.id.commons.db.dao.config.OASAML1;  import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProvider;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter;  import at.gv.egovernment.moa.id.moduls.IAction; @@ -84,9 +85,16 @@ public class SAML1Protocol implements IModulInfo, MOAIDAuthConstants {  		if (oaParam == null)  			throw new AuthenticationException("auth.00",  					new Object[] { oaURL }); +				 +		OASAML1 saml1 = oaParam.getSAML1Parameter(); +		if (saml1 == null || !(saml1.isIsActive() != null && saml1.isIsActive()) ) { +			Logger.info("Online-Application " + oaURL + " can not use SAML1 for authentication."); +			throw new AuthenticationException("auth.00", +					new Object[] { oaURL }); +		}  		config.setTarget(oaParam.getTarget()); -			 +		  		request.getSession().setAttribute(PARAM_OA, oaURL);  		request.getSession().setAttribute(PARAM_TARGET, oaParam.getTarget());  		return config; diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/FormBuildUtils.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/FormBuildUtils.java new file mode 100644 index 000000000..533957cc8 --- /dev/null +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/FormBuildUtils.java @@ -0,0 +1,82 @@ +package at.gv.egovernment.moa.id.util; + +import java.util.HashMap; +import java.util.Map; +import java.util.Set; + +import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; + +public class FormBuildUtils { + +	private static Map<String, String> defaultmap = null; +	 +	public static String MAIN_BACKGROUNDCOLOR = "#MAIN_BACKGOUNDCOLOR#"; +	public static String MAIN_COLOR = "#MAIN_COLOR#"; +	public static String HEADER_BACKGROUNDCOLOR = "#HEADER_BACKGROUNDCOLOR#"; +	public static String HEADER_COLOR = "#HEADER_COLOR#"; +	public static String BUTTON_BACKGROUNDCOLOR = "#BUTTON_BACKGROUNDCOLOR#"; +	public static String BUTTON_BACKGROUNDCOLOR_FOCUS = "#BUTTON_BACKGROUNDCOLOR_FOCUS#"; +	public static String BUTTON_COLOR = "#BUTTON_COLOR#"; +	public static String FONTFAMILY = "#FONTTYPE#"; +	public static String HEADER_TEXT = "#HEADER_TEXT#"; +	public static String REDIRECTTARGET = "#REDIRECTTARGET#"; +	 +	private static String MANDATEVISIBLE = "#MANDATEVISIBLE#"; +	private static String MANDATECHECKED = "#MANDATECHECKED#"; +	private static final String TEMPLATEVISIBLE = " display: none"; +	private static final String TEMPLATEDISABLED =  "disabled=\"true\""; +	private static final String TEMPLATECHECKED = "checked=\"true\""; +	private static final String TEMPLATE_ARIACHECKED = "aria-checked="; +	 +	 +	static { +			if (defaultmap == null) { +				defaultmap = new HashMap<String, String>(); +				defaultmap.put(MAIN_BACKGROUNDCOLOR, "#F7F8F7"); +				defaultmap.put(MAIN_COLOR, "#000000"); +			 +				defaultmap.put(HEADER_BACKGROUNDCOLOR, "#C3D2E2"); +				defaultmap.put(HEADER_COLOR, "#000000"); +				defaultmap.put(HEADER_TEXT, "Login"); +			 +				defaultmap.put(BUTTON_BACKGROUNDCOLOR, "#EBEBEB"); +				defaultmap.put(BUTTON_BACKGROUNDCOLOR_FOCUS, "#EBEBEB"); +				defaultmap.put(BUTTON_COLOR, "#000000"); +			 +				defaultmap.put(FONTFAMILY, "Verdana, Geneva, Arial, sans-serif"); +				 +				defaultmap.put(REDIRECTTARGET, "_top"); +			} +	} +	 +	 +	public static String customiceLayoutBKUSelection(String value, OAAuthParameter oaParam) { +		 +		if (oaParam.isShowMandateCheckBox()) +			value = value.replace(MANDATEVISIBLE, ""); +		else +			value = value.replace(MANDATEVISIBLE, TEMPLATEVISIBLE); +		 +		if (oaParam.isOnlyMandateAllowed()) { +			value = value.replace(MANDATECHECKED, 	TEMPLATECHECKED + " " +  +													TEMPLATEDISABLED + " " + +													TEMPLATE_ARIACHECKED + "\"true\""); +			 +		} else +			value = value.replace(MANDATECHECKED, TEMPLATE_ARIACHECKED + "\"false\""); +		 +		Map<String, String> map = oaParam.getFormCustomizaten(); +		Set<String> elements = map.keySet(); +		for (String element: elements) { +			value = value.replace(element, map.get(element)); +		} +		 +		return value; +	} +	 +	public static Map<String, String> getDefaultMap() { +		return defaultmap; +	} +	 +	 +} diff --git a/id/server/idserverlib/src/main/resources/resources/templates/loginFormFull.html b/id/server/idserverlib/src/main/resources/resources/templates/loginFormFull.html index 55290d05e..efc3e8d9d 100644 --- a/id/server/idserverlib/src/main/resources/resources/templates/loginFormFull.html +++ b/id/server/idserverlib/src/main/resources/resources/templates/loginFormFull.html @@ -1,14 +1,572 @@ -<html> -<head> -	<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> -	<meta content="text/css" http-equiv="Content-Style-Type"> -	<link rel="stylesheet" type="text/css" href="#CONTEXTPATH#/css/index.css"> -   -	<script type="text/javascript"> +<!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; +				} +				 +        #localBKU p { +          font-size: 0.7em; +        }  +         +        #localBKU input{ +          font-size: 0.7em; +          border-radius: 5px; +        } +         +         #bkuselectionarea button { +          font-size: 0.85em; +          border-radius: 7px; +          margin-bottom: 25px; +         } +         +        #mandateLogin { +          font-size: 0.85em; +        } +         +        #bku_header h2 { +          font-size: 0.8em; +        }  +         +         +			  #page { +			    display: block; +			    border: 2px solid rgb(0,0,0); +			    width: 650px; +			    height: 440px; +			    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:hidden;	 +          min-width: 190px; +          min-height: 180px; +          /*height: 260px;*/	 +			  } +       +        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: 90px; +          margin-bottom: 10px; +        } +         +       #validation { +        position: absolute; +        bottom: 0px; +        margin-left: 270px; +        padding-bottom: 10px; +      } +			 +			} + +      @media screen and (max-width: 205px) { +        #localBKU p { +          font-size: 0.6em; +        }  +         +        #localBKU input { +          font-size: 0.6em; +          min-width: 60px; +          max-width: 65px; +          min-height: 1.0em; +          border-radius: 5px; +        } +         +        #bkuselectionarea button { +          font-size: 0.8em; +          min-width: 65px; +          min-height: 1.3em; +          border-radius: 5px; +          margin-bottom: 2% +        } +         +        #mandateLogin { +          font-size: 0.65em; +        } +         +        #bku_header h2 { +          font-size: 0.8em; +          margin-top: -0.4em; +        }  +      } + +      @media screen and (max-width: 249px) and (min-width: 206px) { +        #localBKU p { +          font-size: 0.7em; +        }  +         +        #localBKU input { +          font-size: 0.7em; +          min-width: 70px; +          max-width: 75px; +          min-height: 0.95em; +          border-radius: 6px; +        } +         +        #bkuselectionarea button{ +          font-size: 0.85em; +          min-width: 70px; +          min-height: 0.95em; +          border-radius: 6px; +          margin-bottom: 5% +        } +         +        #mandateLogin { +          font-size: 0.75em; +        } +         +        #bku_header h2 { +          font-size: 0.9em; +          margin-top: -0.45em; +        }  +      } + +      @media screen and (max-width: 299px) and (min-width: 250px) { +        #localBKU p { +          font-size: 0.9em; +        }  +         +        #localBKU input { +          font-size: 0.8em; +          min-width: 70px; +          max-width: 75px; +          border-radius: 6px; +        } +         +        #bkuselectionarea button { +          font-size: 1.0em; +          min-height: 1.05em; +          border-radius: 7px; +          margin-bottom: 10%; +        } +         +        #mandateLogin { +          font-size: 1em; +        } +         +        #bku_header h2 { +          font-size: 1.0em; +          margin-top: -0.50em; +        }  +      } + +      @media screen and (max-width: 399px) and (min-width: 300px) { +        #localBKU p { +          font-size: 0.9em; +        }  +         +        #localBKU input { +          font-size: 0.8em; +          min-width: 70px; +          max-width: 75px; +          border-radius: 6px; +        } +         +        #bkuselectionarea button { +          font-size: 1.1em; +          min-height: 1.2em; +          border-radius: 8px; +          margin-bottom: 10%; +        } +         +        #mandateLogin { +          font-size: 1em; +        } +         +        #bku_header h2 { +          font-size: 1.1em; +          margin-top: -0.55em; +        }  +      } +       +      @media screen and (max-width: 649px) and (min-width: 400px) { +        #localBKU p { +          font-size: 0.9em; +        }  +         +        #localBKU input { +          font-size: 0.8em; +          min-width: 70px; +          max-width: 80px; +          border-radius: 6px; +        } +         +        #bkuselectionarea button { +          font-size: 1.3em; +          min-height: 1.3em; +          border-radius: 10px; +          margin-bottom: 10%; +        } +         +        #mandateLogin { +          font-size: 1.2em; +        } +         +        #bku_header h2 { +          font-size: 1.3em; +          margin-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; +          min-width: 190px; +          min-height: 190px; +          vertical-align: middle; +           +			  } +			   +        #bku_header { +          height: 10%; +          min-height: 1.2em; +          margin-top: 1%; +        } +         +        h2#tabheader{ +          padding-left: 2%; +          padding-right: 2%; +          padding-top: 1%; +          position: relative; +          top: 50%; +			  } +         +       	#bkulogin {	 +          min-width: 190px; +          min-height: 150px;	 +			 } +         +			 .setAssertionButton_full { +			     	background: #efefef; +				    cursor: pointer; +				    margin-top: 15px; +			      width: 70px; +			      height: 25px; +			 } +        +        button { +          height: 11%; +          width: 70%; +        } +			} +			       +			* { +				margin: 0; +				padding: 0; +				border: 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; +			} +			 +			#stork { +			    margin-bottom: 10px; +			    margin-top: 5px; +			} +			 +      #mandateLogin { +        padding-bottom: 2%; +        padding-top: 2%; +        height: 10%; +        position: relative; +        text-align: center; +			} +       +      .verticalcenter { +        vertical-align: middle; +      } +       +      #mandateLogin div { +        clear: both; +        margin-top: -1%; +        position: relative; +        top: 50%; +      } +       +      #bkuselectionarea { +          position: relative; +          display: block; +      } +       +      #localBKU { +        padding-left: 5%; +        padding-right: 2%; +        padding-bottom: 2%; +        position: relative; +        clear: both;         +			} +          			 +			#bkukarte { +				float:left; +				text-align:center; +				width:40%; +        min-height: 70px; +        padding-left: 5%; +        padding-top: 2%; +			} +			 +			#bkuhandy { +				float:right; +				text-align:center; +				width:40%; +        min-height: 90px; +        padding-right: 5%; +        padding-top: 2%; +			} +			 +      .bkuimage { +        width: 90%; +        height: auto; +      } +       +			#mandate{ +				text-align:center; +				padding : 5px 5px 5px 5px; +			} +			 +			button, .sendButton { +				background: #BUTTON_BACKGROUNDCOLOR#; +        color: #BUTTON_COLOR#; +				border:1px solid #000; +				cursor: pointer; +        box-shadow: 3px 3px 3px #222222; +			} +			 +      button:hover, button:focus, button:active,  +      .sendButton:hover , .sendButton:focus, .sendButton:active, +      #mandateCheckBox:hover, #mandateCheckBox:focus, #mandateCheckBox:active { +				background: #BUTTON_BACKGROUNDCOLOR_FOCUS#; +        color: #BUTTON_COLOR#; +				border:1px solid #000; +				cursor: pointer; +        box-shadow: -1px -1px 3px #222222; +			} +       +       +			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; +				 +			} +      			                         +    </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)); @@ -16,7 +574,6 @@  				return false;  			}  		} -  		function isActivexEnabled() {  			var supported = null;  			try { @@ -26,23 +583,19 @@  			}  			return supported;  		} -  		function isMetro() {  			if (!isIE())  				return false;  			return !isActivexEnabled() && isFullscreen();  		} -  		window.onload=function() {  			document.getElementById("localBKU").style.display="block";  			return;  		} -  		function bkuOnlineClicked() {  			if (isMetro())  				document.getElementById("metroDetected").style.display="block";  			document.getElementById("localBKU").style.display="block"; -  /* 			if (checkMandateSSO())  				return; */ @@ -56,13 +609,10 @@  			iFrameURL += "&MODUL=" + "#MODUL#";  			iFrameURL += "&ACTION=" + "#ACTION#";  			iFrameURL += "&MOASessionID=" + "#SESSIONID#"; -  			generateIFrame(iFrameURL);  		} -  		function bkuHandyClicked() {  			document.getElementById("localBKU").style.display="none"; -  /* 			if (checkMandateSSO())  				return; */ @@ -76,13 +626,10 @@  			iFrameURL += "&MODUL=" + "#MODUL#";  			iFrameURL += "&ACTION=" + "#ACTION#";  			iFrameURL += "&MOASessionID=" + "#SESSIONID#"; -  			generateIFrame(iFrameURL);  		} -  		function storkClicked() {  			document.getElementById("localBKU").style.display="none";  -  /* 			if (checkMandateSSO())  				return; */ @@ -91,11 +638,9 @@  			var ccc = "AT";  			var countrySelection = document.getElementById("cccSelection"); -  			if (countrySelection !=  null) {  				ccc = document.getElementById("cccSelection").value;  			} -  			var iFrameURL = "#AUTH_URL#" + "?";  			iFrameURL += "bkuURI=" + "#ONLINE#";  			iFrameURL += "&useMandate=" + document.getElementById("useMandate").value; @@ -104,28 +649,28 @@  			iFrameURL += "&MODUL=" + "#MODUL#";  			iFrameURL += "&ACTION=" + "#ACTION#";  			iFrameURL += "&MOASessionID=" + "#SESSIONID#"; -  			generateIFrame(iFrameURL);  		} -  		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", "220"); -			iframe.setAttribute("height", "165"); +			iframe.setAttribute("width", width); +			iframe.setAttribute("height", el.clientHeight);  			iframe.setAttribute("frameborder", "0");  			iframe.setAttribute("scrolling", "no");  			iframe.setAttribute("title", "Login"); -  			parent.replaceChild(iframe, el);  		} -  		function setMandateSelection() {  			document.getElementById("moaidform").action = "#AUTH_URL#"; -  			document.getElementById("useMandate").value = "false";  			var checkbox = document.getElementById("mandateCheckBox");  			if (checkbox !=  null) { @@ -160,97 +705,127 @@  			}  		} */  	</script> -</head> - - -<body> - -		<div id="page"> -     -			<div id="page1" class="case selected-case"> - -					<h2 class="OA_header">Anmeldung an: #OAName#</h2> - -					<div id="main"> -					<div id="leftcontent"> -						<h2 id="tabheader" class="dunkel"> -							Login mit Bürgerkarte -						</h2> -						<div id="bkulogin" class="hell" #BACKGROUNDCOLOR#> - -							<div id="mandateLogin" style="margin-bottom: 10px;#MANDATEVISIBLE#"> -								<table style="margin-left: auto; margin-right: auto;"> -									<tr> -										<td><input tabindex="1" type="checkbox" name="Mandate" -											style="vertical-align: middle; margin-right: 5px;" -											id="mandateCheckBox" #MANDATECHECKED#></td> -										<td><label for="mandateCheckBox">in Vertretung anmelden</label></td> -										<td><a href="info_mandates.html" target="_blank" -											class="infobutton" style="margin-left: 5px" tabindex="5">i</a></td> -									</tr> -								</table> -							</div> -	 -							<div id="bkukarte"> -								<button name="bkuButton" type="button" onClick="bkuOnlineClicked();">KARTE</button> -							</div> -	 -							<div id="bkuhandy"> -								<button name="bkuButton" type="button" onClick="bkuHandyClicked();">HANDY</button> -							</div> -			 -    					<div id="localBKU"> -								<hr> -								<form method="get" id="moaidform" action="#AUTH_URL#"> -									<input type="hidden" name="bkuURI" value="#LOCAL#"> -									<input type="hidden" name="useMandate" id="useMandate"> -									<input type="hidden" name="SSO" id="useSSO"> -									<input type="hidden" name="CCC" id="ccc"> -									<input type="hidden" name="MODUL" value="#MODUL#"> -									<input type="hidden" name="ACTION" value="#ACTION#"> -									<input type="hidden" name="MOASessionID" value="#SESSIONID#"> -									<input type="submit" size="400" value="lokale BKU" class="sendButton" style="margin-top: 5px;"> -								</form> -								<p style="margin-bottom: 0px; margin-top: 3px;"> -									<small>Alternativ können Sie eine lokal installierte BKU verwenden.</small> -								</p> -							</div> -     -<!--							<div id="stork" align="center"> -								<div id="leftcontent" style="margin-bottom:10px"> -									<h2 id="tabheader" class="dunkel"> -										Home Country Selection -									</h2> -								</div> -								<p> -									<select name="cccSelection" id="cccSelection" size="1" style="width: 120px; margin-right: 5px;" > -										<option value="BE">België/Belgique</option> -										<option value="EE">Eesti</option> -										<option value="ES">España</option> -										<option value="IS">Ísland</option> -										<option value="IT">Italia</option> -										<option value="LI">Liechtenstein</option> -										<option value="LT">Lithuania</option> -										<option value="PT">Portugal</option> -										<option value="SI">Slovenija</option> -										<option value="FI">Suomi</option> -										<option value="SE">Sverige</option> -									</select> -									<button name="bkuButton" type="button" onClick="storkClicked();">Send</button> -									<a href="info_stork.html" target="_blank" class="infobutton" style="color:#FFF">i</a>								 -								</p> -							</div> -						</div>  --> - -						<div id="metroDetected" style="display:none"> -							<p> -								Anscheinend verwenden Sie Internet Explorer im Metro-Modus. Wählen Sie bitte "Auf dem Desktop anzeigen" aus den Optionen um die Karten-Anmeldung starten zu können. -							</p> -						</div> -             -					</div> -				</div> -			</div>     -	</div> -</body> -</html> +  <title>Anmeldung mittels Bürgerkarte oder Handy-Signatur</title>          +  </head>      +  <body>		           +    <div id="page" >     			               +      <div id="page1" class="case selected-case" role="main">					                   +        <h2 class="OA_header" +            role="heading">Anmeldung an: #OAName#</h2>					                   +        <div id="main">					                       +          <div id="leftcontent" class="hell" role="application"> +            <div id="bku_header" class="dunkel">						                           +              <h2 id="tabheader" class="dunkel" role="heading">#HEADER_TEXT#</h2> +            </div>						                           +            <div id="bkulogin" class="hell" role="form">							                               +              <div id="mandateLogin" style="#MANDATEVISIBLE#">								                                   +                <div> +                <input  tabindex="1"  +                        type="checkbox"  +                        name="Mandate"  											 +                        id="mandateCheckBox" +                        class="verticalcenter" +                        role="checkbox" +                        onClick='document.getElementById("mandateCheckBox").setAttribute("aria-checked", document.getElementById("mandateCheckBox").checked);' +                        #MANDATECHECKED#> +                <label  for="mandateCheckBox" +                        class="verticalcenter">in Vertretung anmelden</label> +                <!--a      href="info_mandates.html"  +                        target="_blank" +                        class="infobutton verticalcenter"  +                        tabindex="5">i</a--> +                </div>                               						                               +              </div> +              <div id="bkuselectionarea">	 							                               +                <div id="bkukarte"> +                  <img class="bkuimage" +                        src="#CONTEXTPATH#/img/online-bku.png"  +                        alt="OnlineBKU"/>					                                   +                  <button name="bkuButton"  +                          type="button"  +                          onClick="bkuOnlineClicked();" +                          tabindex="2" +                          role="button">KARTE                                   +                  </button>							                               +                </div>	 							                               +                <div id="bkuhandy"> +                  <img  class="bkuimage" +                        src="#CONTEXTPATH#/img/mobile-bku.png"  +                        alt="HandyBKU"/>								                                   +                  <button name="bkuButton"  +                          type="button"  +                          onClick="bkuHandyClicked();" +                          tabindex="3" +                          role="button">HANDY                                   +                  </button>							                               +                </div> +              </div>			     					                               +              <div id="localBKU">								                                  								                                   +                <form method="get" id="moaidform" action="#AUTH_URL#" class="verticalcenter">									                                       +                  <input  type="hidden" name="bkuURI" value="#LOCAL#">									                                       +                  <input  type="hidden" name="useMandate" id="useMandate">									                                       +                  <input  type="hidden" name="SSO" id="useSSO">									                                       +                  <input  type="hidden" name="CCC" id="ccc">									                                       +                  <input  type="hidden" name="MODUL" value="#MODUL#">									                                       +                  <input  type="hidden" name="ACTION" value="#ACTION#">									                                       +                  <input  type="hidden" name="MOASessionID" value="#SESSIONID#">									                                       +                  <input  type="submit"  +                          value="lokale BKU" +                          class="sendButton" +                          tabindex="4" +                          role="button"> +                  <p> +                    <small>Alternativ können Sie eine lokal installierte BKU verwenden.</small>								                                   +                  </p>								                                   +                </form>								                                                           +              </div> +                                                  +              <!--							<div id="stork" align="center"> +                                          								<div id="leftcontent" style="margin-bottom:10px"> +                                          									<h2 id="tabheader" class="dunkel"> +                                          										Home Country Selection +                                          									</h2> +                                          								</div> +                                          								<p> +                                          									<select name="cccSelection" id="cccSelection" size="1" style="width: 120px; margin-right: 5px;" > +                                          										<option value="BE">België/Belgique</option> +                                          										<option value="EE">Eesti</option> +                                          										<option value="ES">España</option> +                                          										<option value="IS">Ísland</option> +                                          										<option value="IT">Italia</option> +                                          										<option value="LI">Liechtenstein</option> +                                          										<option value="LT">Lithuania</option> +                                          										<option value="PT">Portugal</option> +                                          										<option value="SI">Slovenija</option> +                                          										<option value="FI">Suomi</option> +                                          										<option value="SE">Sverige</option> +                                          									</select> +                                          									<button name="bkuButton" type="button" onClick="storkClicked();">Send</button> +                                          									<a href="info_stork.html" target="_blank" class="infobutton" style="color:#FFF">i</a>								 +                                          								</p> +                                          							</div> +                                          						</div>  --> +                                                         						                               +                <div id="metroDetected" style="display:none">							                                   +                <p>Anscheinend verwenden Sie Internet Explorer im Metro-Modus. Wählen Sie bitte "Auf dem Desktop anzeigen" aus den Optionen um die Karten-Anmeldung starten zu können. 							                                   +                </p>						                               +              </div>             					                           +            </div>				                       +          </div>			                   +        </div>     	               +      </div> +      <div id="validation"> +        <a href="http://validator.w3.org/check?uri="> +          <img   style="border:0;width:88px;height:31px" +                 src="#CONTEXTPATH#/img/valid-html5-blue.png" +                 alt="HTML5 ist valide!" /> +        </a> +        <a href="http://jigsaw.w3.org/css-validator/"> +          <img   style="border:0;width:88px;height:31px" +                 src="http://jigsaw.w3.org/css-validator/images/vcss-blue" +                 alt="CSS ist valide!" /> +        </a> +      </div> +     </div>      +  </body> +</html>
\ No newline at end of file diff --git a/id/server/idserverlib/src/main/resources/resources/templates/sendAssertionFormFull.html b/id/server/idserverlib/src/main/resources/resources/templates/sendAssertionFormFull.html index 1e5f4229c..cc715fa4f 100644 --- a/id/server/idserverlib/src/main/resources/resources/templates/sendAssertionFormFull.html +++ b/id/server/idserverlib/src/main/resources/resources/templates/sendAssertionFormFull.html @@ -1,47 +1,596 @@ +<!DOCTYPE html>   <html>  <head>  	<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> -	<meta content="text/css" http-equiv="Content-Style-Type"> -	<link rel="stylesheet" type="text/css" href="#CONTEXTPATH#/css/index.css"> +    <!-- 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; +				} +				 +        #localBKU p { +          font-size: 0.7em; +        }  +         +        #localBKU input{ +          font-size: 0.7em; +          border-radius: 5px; +        } +         +         #bkuselectionarea button { +          font-size: 0.85em; +          border-radius: 7px; +          margin-bottom: 25px; +         } +         +        #mandateLogin { +          font-size: 0.85em; +        } +         +        #bku_header h2 { +          font-size: 0.8em; +        }  +         +         +			  #page { +			    display: block; +			    border: 2px solid rgb(0,0,0); +			    width: 650px; +			    height: 440px; +			    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 { +        	width: 300px; +				  margin-top: 30px; +          padding-bottom: 15px; +				  margin-bottom: 25px; +			    text-align: left; +			    border: 1px solid rgb(0,0,0); +			  } +			  			   +			  #selectArea { +				 font-size: 15px; +				 padding-bottom: 65px; +			  } +			  +        #selectArea h3 { +          margin-bottom: 25px; +        } +       +        #bku_header { +          height: 5%; +          padding-bottom: 3px; +          padding-top: 3px; +        } +       +        #bkulogin { +				  overflow:hidden;	 +          min-width: 190px; +          min-height: 180px; +          /*height: 260px;*/	 +			  } +       +        h2#tabheader{ +				  font-size: 1.1em;  +          padding-left: 2%; +          padding-right: 2%; +          position: relative; +			  } +      			   +			  .setAssertionButton_full { +				  margin-top: 15px; +			    width: 100px; +			    height: 30px; +          font-size: 1.3em; +          min-height: 1.3em; +          border-radius: 10px; +			  } +			 +			  #leftbutton  { +				 width: 30%;  +				 float:left;  +				 margin-left: 40px; +			  } +			 +			  #rightbutton { +				 width: 30%;  +				 float:right;  +				 margin-right: 45px;  +				 text-align: right; +			  } +         +        button { +          height: 25px; +          width: 90px; +          margin-bottom: 10px; +        } +         +       #validation { +        position: absolute; +        bottom: 0px; +        margin-left: 270px; +        padding-bottom: 10px; +      } +			 +			} + +      @media screen and (max-width: 205px) { +        #localBKU p { +          font-size: 0.6em; +        }  +         +        #localBKU input { +          font-size: 0.7em; +          min-width: 70px; +          min-height: 1.2em; +          border-radius: 5px; +        } +         +        #bkuselectionarea button, .setAssertionButton_full { +          font-size: 0.8em; +          min-width: 65px; +          min-height: 1.3em; +          border-radius: 5px; +          margin-bottom: 2% +        } +         +        #mandateLogin { +          font-size: 0.65em; +        } +         +        #bku_header h2, #selectArea h3 { +          font-size: 0.8em; +          margin-top: -0.4em; +        }  +      } + +      @media screen and (max-width: 249px) and (min-width: 206px) { +        #localBKU p { +          font-size: 0.7em; +        }  +         +        #localBKU input { +          font-size: 0.85em; +          min-width: 80px; +          min-height: 0.95em; +          border-radius: 6px; +        } +         +        #bkuselectionarea button, .setAssertionButton_full { +          font-size: 0.85em; +          min-width: 70px; +          min-height: 0.95em; +          border-radius: 6px; +          margin-bottom: 2% +        } +         +        #mandateLogin { +          font-size: 0.75em; +        } +         +        #bku_header h2, #selectArea h3 { +          font-size: 0.9em; +          margin-top: -0.45em; +        }  +      } + +      @media screen and (max-width: 299px) and (min-width: 250px) { +        #localBKU p { +          font-size: 0.9em; +        }  +         +        #localBKU input { +          font-size: 0.9em; +          min-width: 100px; +          border-radius: 6px; +        } +         +        #bkuselectionarea button, .setAssertionButton_full { +          font-size: 1.0em; +          min-height: 1.05em; +          border-radius: 7px; +          margin-bottom: 5%; +        } +         +        #mandateLogin { +          font-size: 1em; +        } +         +        #bku_header h2, #selectArea h3 { +          font-size: 1.0em; +          margin-top: -0.50em; +        }  +      } + +      @media screen and (max-width: 399px) and (min-width: 300px) { +        #localBKU p { +          font-size: 0.9em; +        }  +         +        #localBKU input { +          font-size: 0.9em; +          min-width: 100px; +          border-radius: 6px; +        } +         +        #bkuselectionarea button, .setAssertionButton_full { +          font-size: 1.1em; +          min-height: 1.2em; +          border-radius: 8px; +          margin-bottom: 5%; +        } +         +        #mandateLogin { +          font-size: 1em; +        } +         +        #bku_header h2, #selectArea h3 { +          font-size: 1.1em; +          margin-top: -0.55em; +        }  +      } +       +      @media screen and (max-width: 649px) and (min-width: 400px) { +        #localBKU p { +          font-size: 0.9em; +        }  +         +        #localBKU input { +          font-size: 0.9em; +          min-width: 100px; +          border-radius: 6px; +        } +         +        #bkuselectionarea button, .setAssertionButton_full { +          font-size: 1.3em; +          min-height: 1.3em; +          border-radius: 10px; +          margin-bottom: 5%; +        } +         +        #mandateLogin { +          font-size: 1.2em; +        } +         +        #bku_header h2, #selectArea h3 { +          font-size: 1.3em; +          margin-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; +          min-width: 190px; +          min-height: 190px; +          vertical-align: middle; +           +			  } +			   +        #bku_header { +          height: 10%; +          min-height: 1.2em; +          margin-top: 1%; +        } +         +        h2#tabheader{ +          padding-left: 2%; +          padding-right: 2%; +          padding-top: 1%; +          position: relative; +          top: 50%; +			  } +         +       	#bkulogin {	 +          min-width: 190px; +          min-height: 150px;	 +			 } +         +			 .setAssertionButton_full { +				    margin-top: 15px; +			      width: 70%; +			      height: 11%; +            min-width: 60px; +            min-height: 25px; +			 } +        +       #selectArea h3 { +          margin-top: 2%; +       } +        +        button { +          height: 11%; +          width: 70%; +        } +			} +			       +			* { +				margin: 0; +				padding: 0; +				border: 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; +			} +			 +			#stork { +			    margin-bottom: 10px; +			    margin-top: 5px; +			} +			 +      #mandateLogin { +        padding-bottom: 2%; +        padding-top: 2%; +        height: 10%; +        position: relative; +        text-align: center; +			} +       +      .verticalcenter { +        vertical-align: middle; +      } +       +      #mandateLogin > div { +        clear: both; +        margin-top: -1%; +        position: relative; +        top: 50%; +      } +       +      #bkuselectionarea { +          position: relative; +          display: block; +      } +       +      #localBKU { +        padding-left: 5%; +        padding-right: 2%; +        padding-bottom: 2%; +        position: relative; +        clear: both;         +			} +          			 +			#bkukarte { +				float:left; +				text-align:center; +				width:40%; +        min-height: 70px; +        padding-left: 5%; +        padding-top: 2%; +			} +			 +			#bkuhandy { +				float:right; +				text-align:center; +				width:40%; +        min-height: 90px; +        padding-right: 5%; +        padding-top: 2%; +			} +			 +      .bkuimage { +        width: 90%; +        height: auto; +      } +       +			#mandate{ +				text-align:center; +				padding : 5px 5px 5px 5px; +			} +			 +			button, .sendButton { +				background: #BUTTON_BACKGROUNDCOLOR#; +        color: #BUTTON_COLOR#; +				border:1px solid #000; +				cursor: pointer; +        box-shadow: 3px 3px 3px #222222; +			} +			 +      button:hover, button:focus, button:active,  +      .sendButton:hover , .sendButton:focus, .sendButton:active, +      #mandateCheckBox:hover, #mandateCheckBox:focus, #mandateCheckBox:active { +				background: #BUTTON_BACKGROUNDCOLOR_FOCUS#; +        color: #BUTTON_COLOR#; +				border:1px solid #000; +				cursor: pointer; +        box-shadow: -1px -1px 3px #222222; +			} +      			 +			#installJava, #BrowserNOK { +				clear:both; +				font-size:0.8em; +				padding:4px; +			} +						 +			.selectText{ +			 +			} +			 +			.selectTextHeader{ +			 +			} +						 +			#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; +				 +			} +      			                         +    </style> +     +     +    <title>Anmeldung an Online-Applikation</title>     </head>  <body>  		<div id="page"> -			<div id="page1" class="case selected-case"> +			<div id="page1" class="case selected-case" role="main">  <!-- 					<h2 class="OA_header">Anmeldung an: #OAName#</h2> --> -					<div id="main" class="full"> -					<div id="leftcontent" class="full"> -						<h2 id="tabheader" class="dunkel full"> -							Anmeldeinformationen: -							   -						</h2> +					<div id="main"> +					<div id="leftcontent" class="hell"> +            <div id="bku_header" class="dunkel"> +						  <h2 id="tabheader" class="dunkel" role="heading"> +							 Anmeldeinformationen:							   +						  </h2> +            </div> +					 +						<div id="selectArea" class="hell" role="application"> +							<h3>Anmeldung an: #OAName#</h3> -						<div id="selectArea" class="hell full" #BACKGROUNDCOLOR#> -							<b>Anmeldung an:</b> -							<p>#OAName#</p> -						 -  <!-- 						<div class="hell"> --> -							<div id="leftbutton" class="full"> +							<div id="leftbutton">  									<form method="post" id="moaidform_yes" action="#URL#">  										<input type="hidden" name="value" value="true">  										<input type="hidden" name="mod" value="#MODUL#">  								    <input type="hidden" name="action" value="#ACTION#">                      <input type="hidden" name="identifier" value="#ID#"> -										<input type="submit" size="400" value="Ja" class="setAssertionButton_full"> +										<input type="submit" value="Ja" class="setAssertionButton_full sendButton" role="button">  									</form>  							</div> -							<div id="rightbutton" class="full"> +							<div id="rightbutton">  										<form method="post" id="moaidform_no" action="#URL#">  										<input type="hidden" name="value" value="false">  										<input type="hidden" name="mod" value="#MODUL#">  								    <input type="hidden" name="action" value="#ACTION#">                      <input type="hidden" name="identifier" value="#ID#"> -										<input type="submit" size="400" value="Nein" class="setAssertionButton_full"> +										<input type="submit" value="Nein" class="setAssertionButton_full sendButton" role="button">  									</form>  							</div> @@ -49,6 +598,18 @@  					</div>  				</div>  		</div> +    <div id="validation"> +        <a href="http://validator.w3.org/check?uri="> +          <img   style="border:0;width:88px;height:31px" +                 src="#CONTEXTPATH#/img/valid-html5-blue.png" +                 alt="HTML5 ist valide!" /> +        </a> +        <a href="http://jigsaw.w3.org/css-validator/"> +          <img   style="border:0;width:88px;height:31px" +                 src="http://jigsaw.w3.org/css-validator/images/vcss-blue" +                 alt="CSS ist valide!" /> +        </a> +    </div>  	</div>  </body>  </html> diff --git a/id/server/idserverlib/src/test/java/test/at/gv/egovernment/moa/id/auth/builder/GetIdentityLinkFormBuilderTest.java b/id/server/idserverlib/src/test/java/test/at/gv/egovernment/moa/id/auth/builder/GetIdentityLinkFormBuilderTest.java index 28f7a8504..33139a2d6 100644 --- a/id/server/idserverlib/src/test/java/test/at/gv/egovernment/moa/id/auth/builder/GetIdentityLinkFormBuilderTest.java +++ b/id/server/idserverlib/src/test/java/test/at/gv/egovernment/moa/id/auth/builder/GetIdentityLinkFormBuilderTest.java @@ -77,7 +77,7 @@ public class GetIdentityLinkFormBuilderTest extends TestCase {  		String dataURL = "https://1.2.3.4/auth/VerifyIdentityLink?MOASessionID=1234567";      String infoRequest = new CertInfoVerifyXMLSignatureRequestBuilder().build();      String infoDataURL = "https://1.2.3.4/auth/StartAuthentication?Target=gb&OA=https://oa.gv.at/"; -		String form = new GetIdentityLinkFormBuilder().build(null, null, xmlRequest, dataURL, infoRequest, infoDataURL, null, null); +		String form = new GetIdentityLinkFormBuilder().build(null, null, xmlRequest, dataURL, infoRequest, infoDataURL, null, null, null, null);  		String formShould = MessageFormat.format(  			FORM, new Object[] { BKU, xmlRequest, dataURL, infoRequest, infoDataURL });  		assertEquals(formShould, form); @@ -88,7 +88,7 @@ public class GetIdentityLinkFormBuilderTest extends TestCase {      String infoRequest = new CertInfoVerifyXMLSignatureRequestBuilder().build();      String infoDataURL = "https://1.2.3.4/auth/StartAuthentication?Target=gb&OA=https://oa.gv.at/";      String bkuURL = "http://bku.at/"; -    String form = new GetIdentityLinkFormBuilder().build(null, bkuURL, xmlRequest, dataURL, infoRequest, infoDataURL, null, null); +    String form = new GetIdentityLinkFormBuilder().build(null, bkuURL, xmlRequest, dataURL, infoRequest, infoDataURL, null, null, null, null);      String formShould = MessageFormat.format(        FORM, new Object[] { bkuURL, xmlRequest, dataURL, infoRequest, infoDataURL });      assertEquals(formShould, form); | 
