From 550ba6452a44cd93066fc5317de626d21758901b Mon Sep 17 00:00:00 2001 From: Thomas Lenz Date: Fri, 11 Oct 2013 14:00:05 +0200 Subject: -- Customizable BKUSelection Form and SendAssertion Form -- OA specific Checkbox to disable SAML1 --- id/ConfigWebTool/.classpath | 1 - .../configuration/data/FormularCustomization.java | 286 +++++++ .../id/configuration/data/oa/OAGeneralConfig.java | 70 +- .../id/configuration/data/oa/OASAML1Config.java | 18 + .../configuration/struts/action/EditOAAction.java | 98 ++- .../validation/FormularCustomizationValitator.java | 132 +++ .../validation/oa/OAGeneralConfigValidation.java | 17 - .../main/resources/applicationResources.properties | 35 +- id/ConfigWebTool/src/main/webapp/css/index.css | 13 + id/ConfigWebTool/src/main/webapp/js/common.js | 11 + .../src/main/webapp/jsp/editOAGeneral.jsp | 132 ++- id/server/auth/src/main/webapp/css/index.css | 902 ++++++++++----------- .../auth/src/main/webapp/img/2.0/bg_footer.png | Bin 266 -> 0 bytes .../auth/src/main/webapp/img/2.0/bg_header.png | Bin 491 -> 0 bytes .../auth/src/main/webapp/img/2.0/bg_mainnav.png | Bin 192 -> 0 bytes .../src/main/webapp/img/2.0/bg_mainnav_left.png | Bin 236 -> 0 bytes .../src/main/webapp/img/2.0/bg_mainnav_right.png | Bin 3282 -> 0 bytes .../auth/src/main/webapp/img/2.0/bku_local.gif | Bin 1354 -> 0 bytes .../auth/src/main/webapp/img/2.0/bku_mobile.gif | Bin 1558 -> 0 bytes .../auth/src/main/webapp/img/2.0/bku_online.gif | Bin 1301 -> 0 bytes .../src/main/webapp/img/2.0/checkbox_checked.png | Bin 878 -> 0 bytes .../src/main/webapp/img/2.0/checkbox_unchecked.gif | Bin 117 -> 0 bytes id/server/auth/src/main/webapp/img/2.0/dsk.ico | Bin 3262 -> 0 bytes id/server/auth/src/main/webapp/img/2.0/logo.png | Bin 11141 -> 0 bytes .../src/main/webapp/img/2.0/logo_digitalesOE.gif | Bin 1242 -> 0 bytes .../auth/src/main/webapp/img/2.0/logo_dsk_nav.png | Bin 5860 -> 0 bytes .../main/webapp/img/2.0/logo_dsk_szr_header.png | Bin 85110 -> 0 bytes .../auth/src/main/webapp/img/2.0/std_handy.gif | Bin 2632 -> 0 bytes .../auth/src/main/webapp/img/2.0/std_karte.gif | Bin 2369 -> 0 bytes id/server/auth/src/main/webapp/img/mobile-bku.png | Bin 0 -> 4602 bytes id/server/auth/src/main/webapp/img/online-bku.png | Bin 0 -> 6011 bytes .../auth/src/main/webapp/img/valid-html5-blue.png | Bin 0 -> 3297 bytes .../auth/src/main/webapp/img/w3cvalidhtml5.jpg | Bin 0 -> 1938 bytes .../auth/src/main/webapp/template_handyBKU.html | 8 +- .../auth/src/main/webapp/template_onlineBKU.html | 6 +- id/server/idserverlib/pom.xml | 4 +- .../moa/id/auth/AuthenticationServer.java | 13 +- .../moa/id/auth/MOAIDAuthConstants.java | 3 + .../auth/builder/GetIdentityLinkFormBuilder.java | 38 +- .../moa/id/auth/builder/LoginFormBuilder.java | 34 +- .../id/auth/builder/SendAssertionFormBuilder.java | 10 +- .../auth/builder/StartAuthenticationBuilder.java | 2 +- .../servlet/GenerateIFrameTemplateServlet.java | 4 + .../moa/id/config/auth/OAAuthParameter.java | 60 +- .../id/config/legacy/BuildFromLegacyConfig.java | 1 + .../moa/id/protocols/saml1/SAML1Protocol.java | 10 +- .../gv/egovernment/moa/id/util/FormBuildUtils.java | 82 ++ .../resources/templates/loginFormFull.html | 821 ++++++++++++++++--- .../resources/templates/sendAssertionFormFull.html | 597 +++++++++++++- .../builder/GetIdentityLinkFormBuilderTest.java | 4 +- .../src/main/resources/config/moaid_config_2.0.xsd | 19 +- 51 files changed, 2617 insertions(+), 814 deletions(-) create mode 100644 id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/FormularCustomization.java create mode 100644 id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/FormularCustomizationValitator.java delete mode 100644 id/server/auth/src/main/webapp/img/2.0/bg_footer.png delete mode 100644 id/server/auth/src/main/webapp/img/2.0/bg_header.png delete mode 100644 id/server/auth/src/main/webapp/img/2.0/bg_mainnav.png delete mode 100644 id/server/auth/src/main/webapp/img/2.0/bg_mainnav_left.png delete mode 100644 id/server/auth/src/main/webapp/img/2.0/bg_mainnav_right.png delete mode 100644 id/server/auth/src/main/webapp/img/2.0/bku_local.gif delete mode 100644 id/server/auth/src/main/webapp/img/2.0/bku_mobile.gif delete mode 100644 id/server/auth/src/main/webapp/img/2.0/bku_online.gif delete mode 100644 id/server/auth/src/main/webapp/img/2.0/checkbox_checked.png delete mode 100644 id/server/auth/src/main/webapp/img/2.0/checkbox_unchecked.gif delete mode 100644 id/server/auth/src/main/webapp/img/2.0/dsk.ico delete mode 100644 id/server/auth/src/main/webapp/img/2.0/logo.png delete mode 100644 id/server/auth/src/main/webapp/img/2.0/logo_digitalesOE.gif delete mode 100644 id/server/auth/src/main/webapp/img/2.0/logo_dsk_nav.png delete mode 100644 id/server/auth/src/main/webapp/img/2.0/logo_dsk_szr_header.png delete mode 100644 id/server/auth/src/main/webapp/img/2.0/std_handy.gif delete mode 100644 id/server/auth/src/main/webapp/img/2.0/std_karte.gif create mode 100644 id/server/auth/src/main/webapp/img/mobile-bku.png create mode 100644 id/server/auth/src/main/webapp/img/online-bku.png create mode 100644 id/server/auth/src/main/webapp/img/valid-html5-blue.png create mode 100644 id/server/auth/src/main/webapp/img/w3cvalidhtml5.jpg create mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/FormBuildUtils.java (limited to 'id') diff --git a/id/ConfigWebTool/.classpath b/id/ConfigWebTool/.classpath index 0e6d0b69f..5bde2110d 100644 --- a/id/ConfigWebTool/.classpath +++ b/id/ConfigWebTool/.classpath @@ -26,7 +26,6 @@ - diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/FormularCustomization.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/FormularCustomization.java new file mode 100644 index 000000000..0d13de3fe --- /dev/null +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/FormularCustomization.java @@ -0,0 +1,286 @@ +package at.gv.egovernment.moa.id.configuration.data; + +import java.util.Arrays; +import java.util.List; + +import at.gv.egovernment.moa.id.commons.db.dao.config.AuthComponentOA; +import at.gv.egovernment.moa.id.commons.db.dao.config.BKUSelectionCustomizationType; +import at.gv.egovernment.moa.id.commons.db.dao.config.OnlineApplication; +import at.gv.egovernment.moa.id.commons.db.dao.config.TemplatesType; +import at.gv.egovernment.moa.util.MiscUtil; + +public class FormularCustomization { + + private boolean showMandateLoginButton = true; + private boolean onlyMandateAllowed = false; + + private String fontType = null; + + private String frontColor = null; + private String backGroundColor = null; + private String header_FrontColor = null; + private String header_BackGroundColor = null; + private String header_text = null; + private String button_BackGroundColor = null; + private String button_BackGroundColorFocus = null; + private String button_FrontColor = null; + + private String appletRedirectTarget = null; + public static List appletRedirectTargetList = null; + + public FormularCustomization() { + appletRedirectTargetList = Arrays.asList("","_blank","_self","_parent","_top"); + } + + + public void parse(OnlineApplication dbOAConfig) { + AuthComponentOA auth = dbOAConfig.getAuthComponentOA(); + + if (auth != null) { + TemplatesType templates = auth.getTemplates(); + if (templates != null) { + BKUSelectionCustomizationType formcustom = templates.getBKUSelectionCustomization(); + if (formcustom != null) { + + if (formcustom.isMandateLoginButton() != null) + showMandateLoginButton = formcustom.isMandateLoginButton(); + + if (formcustom.isOnlyMandateLoginAllowed() != null) + onlyMandateAllowed = formcustom.isOnlyMandateLoginAllowed(); + + if (MiscUtil.isNotEmpty(formcustom.getAppletRedirectTarget())) + appletRedirectTarget = formcustom.getAppletRedirectTarget(); + + if (MiscUtil.isNotEmpty(formcustom.getBackGroundColor())) + backGroundColor = formcustom.getBackGroundColor(); + + if (MiscUtil.isNotEmpty(formcustom.getButtonBackGroundColor())) + button_BackGroundColor = formcustom.getButtonBackGroundColor(); + + if (MiscUtil.isNotEmpty(formcustom.getButtonBackGroundColorFocus())) + button_BackGroundColorFocus = formcustom.getButtonBackGroundColorFocus(); + + if (MiscUtil.isNotEmpty(formcustom.getButtonFontColor())) + button_FrontColor = formcustom.getButtonFontColor(); + + if (MiscUtil.isNotEmpty(formcustom.getFontType())) + fontType = formcustom.getFontType(); + + if (MiscUtil.isNotEmpty(formcustom.getFrontColor())) + frontColor = formcustom.getFrontColor(); + + if (MiscUtil.isNotEmpty(formcustom.getHeaderBackGroundColor())) + header_BackGroundColor = formcustom.getHeaderBackGroundColor(); + + if (MiscUtil.isNotEmpty(formcustom.getHeaderFrontColor())) + header_FrontColor = formcustom.getHeaderFrontColor(); + + if (MiscUtil.isNotEmpty(formcustom.getHeaderText())) + header_text = formcustom.getHeaderText(); + } + } + } + } + + + /** + * @return the showMandateLoginButton + */ + public boolean isShowMandateLoginButton() { + return showMandateLoginButton; + } + + + /** + * @param showMandateLoginButton the showMandateLoginButton to set + */ + public void setShowMandateLoginButton(boolean showMandateLoginButton) { + this.showMandateLoginButton = showMandateLoginButton; + } + + + /** + * @return the onlyMandateAllowed + */ + public boolean isOnlyMandateAllowed() { + return onlyMandateAllowed; + } + + + /** + * @param onlyMandateAllowed the onlyMandateAllowed to set + */ + public void setOnlyMandateAllowed(boolean onlyMandateAllowed) { + this.onlyMandateAllowed = onlyMandateAllowed; + } + + + /** + * @return the fontType + */ + public String getFontType() { + return fontType; + } + + + /** + * @param fontType the fontType to set + */ + public void setFontType(String fontType) { + this.fontType = fontType; + } + + + /** + * @return the frontColor + */ + public String getFrontColor() { + return frontColor; + } + + + /** + * @param frontColor the frontColor to set + */ + public void setFrontColor(String frontColor) { + this.frontColor = frontColor; + } + + + /** + * @return the backGroundColor + */ + public String getBackGroundColor() { + return backGroundColor; + } + + + /** + * @param backGroundColor the backGroundColor to set + */ + public void setBackGroundColor(String backGroundColor) { + this.backGroundColor = backGroundColor; + } + + + /** + * @return the header_FrontColor + */ + public String getHeader_FrontColor() { + return header_FrontColor; + } + + + /** + * @param header_FrontColor the header_FrontColor to set + */ + public void setHeader_FrontColor(String header_FrontColor) { + this.header_FrontColor = header_FrontColor; + } + + + /** + * @return the header_BackGroundColor + */ + public String getHeader_BackGroundColor() { + return header_BackGroundColor; + } + + + /** + * @param header_BackGroundColor the header_BackGroundColor to set + */ + public void setHeader_BackGroundColor(String header_BackGroundColor) { + this.header_BackGroundColor = header_BackGroundColor; + } + + + /** + * @return the header_text + */ + public String getHeader_text() { + return header_text; + } + + + /** + * @param header_text the header_text to set + */ + public void setHeader_text(String header_text) { + this.header_text = header_text; + } + + + /** + * @return the button_BackGroundColor + */ + public String getButton_BackGroundColor() { + return button_BackGroundColor; + } + + + /** + * @param button_BackGroundColor the button_BackGroundColor to set + */ + public void setButton_BackGroundColor(String button_BackGroundColor) { + this.button_BackGroundColor = button_BackGroundColor; + } + + + /** + * @return the button_BackGroundColorFocus + */ + public String getButton_BackGroundColorFocus() { + return button_BackGroundColorFocus; + } + + + /** + * @param button_BackGroundColorFocus the button_BackGroundColorFocus to set + */ + public void setButton_BackGroundColorFocus(String button_BackGroundColorFocus) { + this.button_BackGroundColorFocus = button_BackGroundColorFocus; + } + + + /** + * @return the button_FrontColor + */ + public String getButton_FrontColor() { + return button_FrontColor; + } + + + /** + * @param button_FrontColor the button_FrontColor to set + */ + public void setButton_FrontColor(String button_FrontColor) { + this.button_FrontColor = button_FrontColor; + } + + + /** + * @return the appletRedirectTarget + */ + public String getAppletRedirectTarget() { + return appletRedirectTarget; + } + + /** + * @param appletRedirectTarget the appletRedirectTarget to set + */ + public void setAppletRedirectTarget(String appletRedirectTarget) { + this.appletRedirectTarget = appletRedirectTarget; + } + + + /** + * @return the appletredirecttargetlist + */ + public List getAppletRedirectTargetList() { + return appletRedirectTargetList; + } + + + +} diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAGeneralConfig.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAGeneralConfig.java index 90c02e0e4..07c07a964 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAGeneralConfig.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAGeneralConfig.java @@ -8,7 +8,6 @@ import java.util.Map; import at.gv.egovernment.moa.id.commons.db.ConfigurationDBRead; import at.gv.egovernment.moa.id.commons.db.dao.config.AuthComponentOA; -import at.gv.egovernment.moa.id.commons.db.dao.config.BKUSelectionCustomizationType; import at.gv.egovernment.moa.id.commons.db.dao.config.BKUURLS; import at.gv.egovernment.moa.id.commons.db.dao.config.DefaultBKUs; import at.gv.egovernment.moa.id.commons.db.dao.config.IdentificationNumber; @@ -63,10 +62,6 @@ public class OAGeneralConfig { private boolean isHideBPKAuthBlock = false; - private boolean showMandateLoginButton = true; - private boolean onlyMandateAllowed = false; - private String bkuSelectionBackGroundColor = null; - private Map transformations; @@ -197,19 +192,6 @@ public class OAGeneralConfig { SLTemplates.add(el.getURL()); } } - - BKUSelectionCustomizationType bkuselectioncustom = templates.getBKUSelectionCustomization(); - if (bkuselectioncustom != null) { - - if (MiscUtil.isNotEmpty(bkuselectioncustom.getBackGroundColor())) - bkuSelectionBackGroundColor = bkuselectioncustom.getBackGroundColor(); - - if (bkuselectioncustom.isMandateLoginButton() != null) - showMandateLoginButton = bkuselectioncustom.isMandateLoginButton(); - - if (bkuselectioncustom.isOnlyMandateLoginAllowed() != null) - onlyMandateAllowed = bkuselectioncustom.isOnlyMandateLoginAllowed(); - } } if (SLTemplates != null && SLTemplates.size() > 0) @@ -571,55 +553,5 @@ public class OAGeneralConfig { */ public void setHideBPKAuthBlock(boolean isHideBPKAuthBlock) { this.isHideBPKAuthBlock = isHideBPKAuthBlock; - } - - - /** - * @return the showMandateLoginButton - */ - public boolean isShowMandateLoginButton() { - return showMandateLoginButton; - } - - - /** - * @param showMandateLoginButton the showMandateLoginButton to set - */ - public void setShowMandateLoginButton(boolean showMandateLoginButton) { - this.showMandateLoginButton = showMandateLoginButton; - } - - - /** - * @return the onlyMandateAllowed - */ - public boolean isOnlyMandateAllowed() { - return onlyMandateAllowed; - } - - - /** - * @param onlyMandateAllowed the onlyMandateAllowed to set - */ - public void setOnlyMandateAllowed(boolean onlyMandateAllowed) { - this.onlyMandateAllowed = onlyMandateAllowed; - } - - - /** - * @return the bkuSelectionBackGroundColor - */ - public String getBkuSelectionBackGroundColor() { - return bkuSelectionBackGroundColor; - } - - - /** - * @param bkuSelectionBackGroundColor the bkuSelectionBackGroundColor to set - */ - public void setBkuSelectionBackGroundColor(String bkuSelectionBackGroundColor) { - this.bkuSelectionBackGroundColor = bkuSelectionBackGroundColor; - } - - + } } diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OASAML1Config.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OASAML1Config.java index 687a06b9e..951052877 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OASAML1Config.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OASAML1Config.java @@ -6,6 +6,7 @@ import at.gv.egovernment.moa.id.commons.db.dao.config.OnlineApplication; public class OASAML1Config { + private boolean isActive = false; private boolean provideStammZahl = false; private boolean provideAuthBlock = false; private boolean provideIdentityLink = false; @@ -30,6 +31,8 @@ public class OASAML1Config { provideStammZahl = saml1.isProvideStammzahl(); useCondition = saml1.isUseCondition(); conditionLength = saml1.getConditionLength().intValue(); + if (saml1.isIsActive() != null) + isActive = saml1.isIsActive(); } } } @@ -76,6 +79,21 @@ public class OASAML1Config { public void setConditionLength(int conditionLength) { this.conditionLength = conditionLength; } + + /** + * @return the isActive + */ + public boolean isActive() { + return isActive; + } + + /** + * @param isActive the isActive to set + */ + public void setActive(boolean isActive) { + this.isActive = isActive; + } + } diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditOAAction.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditOAAction.java index 4a05f9dbd..3ee870d11 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditOAAction.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditOAAction.java @@ -38,6 +38,7 @@ import at.gv.egovernment.moa.id.commons.db.dao.config.UserDatabase; import at.gv.egovernment.moa.id.commons.db.ex.MOADatabaseException; import at.gv.egovernment.moa.id.configuration.Constants; import at.gv.egovernment.moa.id.configuration.auth.AuthenticatedUser; +import at.gv.egovernment.moa.id.configuration.data.FormularCustomization; import at.gv.egovernment.moa.id.configuration.data.oa.OAGeneralConfig; import at.gv.egovernment.moa.id.configuration.data.oa.OAPVP2Config; import at.gv.egovernment.moa.id.configuration.data.oa.OASAML1Config; @@ -46,6 +47,7 @@ import at.gv.egovernment.moa.id.configuration.data.oa.OASTORKConfig; import at.gv.egovernment.moa.id.configuration.exception.ConfigurationException; import at.gv.egovernment.moa.id.configuration.helper.LanguageHelper; import at.gv.egovernment.moa.id.configuration.helper.MailHelper; +import at.gv.egovernment.moa.id.configuration.validation.FormularCustomizationValitator; import at.gv.egovernment.moa.id.configuration.validation.TargetValidator; import at.gv.egovernment.moa.id.configuration.validation.ValidationHelper; import at.gv.egovernment.moa.id.configuration.validation.oa.OAGeneralConfigValidation; @@ -86,6 +88,7 @@ ServletResponseAware { private OASAML1Config saml1OA = new OASAML1Config(); private OASSOConfig ssoOA = new OASSOConfig(); private OASTORKConfig storkOA; + private FormularCustomization formOA = new FormularCustomization(); //STRUTS actions public String inital() { @@ -141,6 +144,7 @@ ServletResponseAware { generalOA.parse(onlineapplication); ssoOA.parse(onlineapplication); saml1OA.parse(onlineapplication); + formOA.parse(onlineapplication); List errors = pvp2OA.parse(onlineapplication); @@ -314,16 +318,18 @@ ServletResponseAware { OASAML1ConfigValidation validatior_saml1 = new OASAML1ConfigValidation(); OASSOConfigValidation validatior_sso = new OASSOConfigValidation(); OASTORKConfigValidation validator_stork = new OASTORKConfigValidation(); + FormularCustomizationValitator validator_form = new FormularCustomizationValitator(); errors.addAll(validatior_general.validate(generalOA, authUser.isAdmin())); errors.addAll(validatior_pvp2.validate(pvp2OA)); errors.addAll(validatior_saml1.validate(saml1OA, generalOA)); errors.addAll(validatior_sso.validate(ssoOA, authUser.isAdmin())); errors.addAll(validator_stork.validate(storkOA)); + errors.addAll(validator_form.validate(formOA)); //Do not allow SSO in combination with special BKUSelection features if (ssoOA.isUseSSO() && - ( generalOA.isOnlyMandateAllowed() || !generalOA.isShowMandateLoginButton()) ) { + ( formOA.isOnlyMandateAllowed() || !formOA.isShowMandateLoginButton()) ) { log.warn("Special BKUSelection features can not be used in combination with SSO"); errors.add(LanguageHelper.getErrorString("validation.general.bkuselection.specialfeatures.valid")); } @@ -757,22 +763,25 @@ ServletResponseAware { bkuselectioncustom = new BKUSelectionCustomizationType(); templates.setBKUSelectionCustomization(bkuselectioncustom); } - - if (MiscUtil.isNotEmpty(generalOA.getBkuSelectionBackGroundColor())) { - String value; - if (!generalOA.getBkuSelectionBackGroundColor().startsWith("#")) - value = "#" + generalOA.getBkuSelectionBackGroundColor(); - else - value = generalOA.getBkuSelectionBackGroundColor(); - - bkuselectioncustom.setBackGroundColor(value); - - } else { - bkuselectioncustom.setBackGroundColor(""); - } - - bkuselectioncustom.setMandateLoginButton(generalOA.isShowMandateLoginButton()); - bkuselectioncustom.setOnlyMandateLoginAllowed(generalOA.isOnlyMandateAllowed()); + + bkuselectioncustom.setBackGroundColor(parseColor(formOA.getBackGroundColor())); + bkuselectioncustom.setFrontColor(parseColor(formOA.getFrontColor())); + + bkuselectioncustom.setHeaderBackGroundColor(parseColor(formOA.getHeader_BackGroundColor())); + bkuselectioncustom.setHeaderFrontColor(parseColor(formOA.getHeader_FrontColor())); + bkuselectioncustom.setHeaderText(formOA.getHeader_text()); + + bkuselectioncustom.setButtonBackGroundColor(parseColor(formOA.getButton_BackGroundColor())); + bkuselectioncustom.setButtonBackGroundColorFocus(parseColor(formOA.getButton_BackGroundColorFocus())); + bkuselectioncustom.setButtonFontColor(parseColor(formOA.getButton_FrontColor())); + + if (MiscUtil.isNotEmpty(formOA.getAppletRedirectTarget())) + bkuselectioncustom.setAppletRedirectTarget(formOA.getAppletRedirectTarget()); + + bkuselectioncustom.setFontType(formOA.getFontType()); + + bkuselectioncustom.setMandateLoginButton(formOA.isShowMandateLoginButton()); + bkuselectioncustom.setOnlyMandateLoginAllowed(formOA.isOnlyMandateAllowed()); } @@ -802,21 +811,28 @@ ServletResponseAware { log.info("Uploaded Certificate can not be parsed", e); return LanguageHelper.getErrorString("validation.pvp2.certificate.format"); } - + OASAML1 saml1 = authoa.getOASAML1(); if (saml1 == null) { saml1 = new OASAML1(); authoa.setOASAML1(saml1); } - saml1.setProvideAUTHBlock(saml1OA.isProvideAuthBlock()); - saml1.setProvideCertificate(saml1OA.isProvideCertificate()); - saml1.setProvideFullMandatorData(saml1OA.isProvideFullMandateData()); - saml1.setProvideIdentityLink(saml1OA.isProvideIdentityLink()); - saml1.setProvideStammzahl(saml1OA.isProvideStammZahl()); - saml1.setUseCondition(saml1OA.isUseCondition()); - saml1.setConditionLength(BigInteger.valueOf(saml1OA.getConditionLength())); - //TODO: set sourceID - //saml1.setSourceID(""); + + if (authUser.isAdmin()) { + saml1.setIsActive(saml1OA.isActive()); + } + + if (saml1.isIsActive()) { + saml1.setProvideAUTHBlock(saml1OA.isProvideAuthBlock()); + saml1.setProvideCertificate(saml1OA.isProvideCertificate()); + saml1.setProvideFullMandatorData(saml1OA.isProvideFullMandateData()); + saml1.setProvideIdentityLink(saml1OA.isProvideIdentityLink()); + saml1.setProvideStammzahl(saml1OA.isProvideStammZahl()); + saml1.setUseCondition(saml1OA.isUseCondition()); + saml1.setConditionLength(BigInteger.valueOf(saml1OA.getConditionLength())); + //TODO: set sourceID + //saml1.setSourceID(""); + } OASSO sso = authoa.getOASSO(); if (sso == null) { @@ -865,6 +881,18 @@ ServletResponseAware { return null; } + private String parseColor(String color) { + String value = ""; + + if (MiscUtil.isNotEmpty(color)) { + if (!color.startsWith("#")) + value = "#" + color; + else + value = color; + } + return value; + } + private void generateUserSpecificConfigurationOptions(UserDatabase userdb) { if (userdb.isIsMandateUser() != null && userdb.isIsMandateUser()) { @@ -1076,4 +1104,20 @@ ServletResponseAware { public void setDeaktivededBusinessService(boolean deaktivededBusinessService) { this.deaktivededBusinessService = deaktivededBusinessService; } + + /** + * @return the formOA + */ + public FormularCustomization getFormOA() { + return formOA; + } + + /** + * @param formOA the formOA to set + */ + public void setFormOA(FormularCustomization formOA) { + this.formOA = formOA; + } + + } diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/FormularCustomizationValitator.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/FormularCustomizationValitator.java new file mode 100644 index 000000000..039b6eac3 --- /dev/null +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/FormularCustomizationValitator.java @@ -0,0 +1,132 @@ +package at.gv.egovernment.moa.id.configuration.validation; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.log4j.Logger; + +import at.gv.egovernment.moa.id.configuration.data.FormularCustomization; +import at.gv.egovernment.moa.id.configuration.helper.LanguageHelper; +import at.gv.egovernment.moa.util.MiscUtil; + +public class FormularCustomizationValitator { + + private static final Logger log = Logger.getLogger(FormularCustomizationValitator.class); + + public List validate(FormularCustomization form) { + + List errors = new ArrayList(); + String check; + + if (form.isOnlyMandateAllowed() && !form.isShowMandateLoginButton()) { + log.warn("OnlyMandateAllowed in combination with hidden MandateLoginCheckbox is not possible."); + errors.add(LanguageHelper.getErrorString("validation.general.bkuselection.specialfeatures.combination")); + } + + check = form.getBackGroundColor(); + if (MiscUtil.isNotEmpty(check)) { + if (!check.startsWith("#")) + check = "#" + check; + + if (!ValidationHelper.isValidHexValue(check)) { + log.warn("BKUSelectionBackGroundColor is not a valid hex value " + check); + errors.add(LanguageHelper.getErrorString("validation.general.form.color.background")); + } + } + + check = form.getFrontColor(); + if (MiscUtil.isNotEmpty(check)) { + if (!check.startsWith("#")) + check = "#" + check; + + if (!ValidationHelper.isValidHexValue(check)) { + log.warn("BKUSelectionFrontColor is not a valid hex value " + check); + errors.add(LanguageHelper.getErrorString("validation.general.form.color.front")); + } + } + + check = form.getHeader_BackGroundColor(); + if (MiscUtil.isNotEmpty(check)) { + if (!check.startsWith("#")) + check = "#" + check; + + if (!ValidationHelper.isValidHexValue(check)) { + log.warn("HeaderBackGroundColor is not a valid hex value " + check); + errors.add(LanguageHelper.getErrorString("validation.general.form.header.color.back")); + } + } + + check = form.getHeader_FrontColor(); + if (MiscUtil.isNotEmpty(check)) { + if (!check.startsWith("#")) + check = "#" + check; + + if (!ValidationHelper.isValidHexValue(check)) { + log.warn("HeaderFrontColor is not a valid hex value " + check); + errors.add(LanguageHelper.getErrorString("validation.general.form.header.color.front")); + } + } + + check = form.getHeader_text(); + if (MiscUtil.isNotEmpty(check)) { + if (ValidationHelper.containsPotentialCSSCharacter(check, false)) { + log.warn("HeaderText contains potentail XSS characters: " + check); + errors.add(LanguageHelper.getErrorString("validation.general.form.header.text", + new Object[] {ValidationHelper.getPotentialCSSCharacter(false)} )); + } + } + + check = form.getButton_BackGroundColor(); + if (MiscUtil.isNotEmpty(check)) { + if (!check.startsWith("#")) + check = "#" + check; + + if (!ValidationHelper.isValidHexValue(check)) { + log.warn("ButtonBackGroundColor is not a valid hex value " + check); + errors.add(LanguageHelper.getErrorString("validation.general.form.button.color.back")); + } + } + + check = form.getButton_BackGroundColorFocus(); + if (MiscUtil.isNotEmpty(check)) { + if (!check.startsWith("#")) + check = "#" + check; + + if (!ValidationHelper.isValidHexValue(check)) { + log.warn("ButtonBackGroundColorFocus is not a valid hex value " + check); + errors.add(LanguageHelper.getErrorString("validation.general.form.button.color.back.focus")); + } + } + + check = form.getButton_FrontColor(); + if (MiscUtil.isNotEmpty(check)) { + if (!check.startsWith("#")) + check = "#" + check; + + if (!ValidationHelper.isValidHexValue(check)) { + log.warn("ButtonFrontColor is not a valid hex value " + check); + errors.add(LanguageHelper.getErrorString("validation.general.form.button.color.front")); + } + } + + check = form.getAppletRedirectTarget(); + if (MiscUtil.isNotEmpty(check)) { + if (!FormularCustomization.appletRedirectTargetList.contains(check)) { + log.warn("AppletRedirectTarget has not valid value " + check); + errors.add(LanguageHelper.getErrorString("validation.general.form.appletredirecttarget")); + } + } + + check = form.getFontType(); + if (MiscUtil.isNotEmpty(check)) { + if (ValidationHelper.containsPotentialCSSCharacter(check, true)) { + log.warn("FontType contains potentail XSS characters: " + check); + errors.add(LanguageHelper.getErrorString("validation.general.form.fonttype", + new Object[] {ValidationHelper.getPotentialCSSCharacter(true)} )); + } + } + + return errors; + + } +} diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OAGeneralConfigValidation.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OAGeneralConfigValidation.java index 9903b5391..87ac31e89 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OAGeneralConfigValidation.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OAGeneralConfigValidation.java @@ -32,23 +32,6 @@ public class OAGeneralConfigValidation { new Object[] {ValidationHelper.getPotentialCSSCharacter(false)} )); } } - - check = form.getBkuSelectionBackGroundColor(); - if (MiscUtil.isNotEmpty(check)) { - if (!check.startsWith("#")) - check = "#" + check; - - if (!ValidationHelper.isValidHexValue(check)) { - log.warn("BKUSelectionBackGroundColor is not a valid hex value " + check); - errors.add(LanguageHelper.getErrorString("validation.general.bkuselectioncolor.valid")); - } - - } - - if (form.isOnlyMandateAllowed() && !form.isShowMandateLoginButton()) { - log.warn("OnlyMandateAllowed in combination with hidden MandateLoginCheckbox is not possible."); - errors.add(LanguageHelper.getErrorString("validation.general.bkuselection.specialfeatures.combination")); - } } //Check BKU URLs diff --git a/id/ConfigWebTool/src/main/resources/applicationResources.properties b/id/ConfigWebTool/src/main/resources/applicationResources.properties index 5e337c7a5..103be82c4 100644 --- a/id/ConfigWebTool/src/main/resources/applicationResources.properties +++ b/id/ConfigWebTool/src/main/resources/applicationResources.properties @@ -182,9 +182,6 @@ webpages.oaconfig.general.aditional.iframe=B\u00FCrgerkartenauswahl im IFrame webpages.oaconfig.general.aditional.useUTC=UTC Zeit verwenden webpages.oaconfig.general.aditional.calculateHPI="TODO!" webpages.oaconfig.general.isHideBPKAuthBlock=bPK/wbPK im AuthBlock ausblenden -webpages.oaconfig.general.BKUSelection.isMandateLoginCheckboxVisible=Vollmachtenanmeldung anzeigen -webpages.oaconfig.general.BKUSelection.isOnlyMandateLoginAllowed=Nur Vollmachtenanmeldung erlauben -webpages.oaconfig.general.BKUSelection.backgroundcolor=Hintergrundfarbe der BKU-Auswahl webpages.oaconfig.menu.saml1.show=SAML1 Konfiguration einblenden webpages.oaconfig.menu.saml1.hidden=SAML1 Konfiguration ausblenden @@ -195,12 +192,29 @@ webpages.oaconfig.menu.stork=STORK Konfiguration webpages.oaconfig.protocols.header=Authentifizierungsprotokolle +webpages.oaconfig.general.BKUSelection.button.show=Formularkonfiguration einblenden +webpages.oaconfig.general.BKUSelection.button.hidden=Formularkonfiguration ausblenden +webpages.oaconfig.general.BKUSelection.header=Formularkonfiguration +webpages.oaconfig.general.BKUSelection.isMandateLoginCheckboxVisible=Vollmachtenanmeldung anzeigen +webpages.oaconfig.general.BKUSelection.isOnlyMandateLoginAllowed=Nur Vollmachtenanmeldung erlauben +webpages.oaconfig.general.BKUSelection.backgroundcolor=Hintergrundfarbe der BKU-Auswahl +webpages.oaconfig.general.BKUSelection.frontcolor=Vordergrundfarbe der BKU-Auswahl +webpages.oaconfig.general.BKUSelection.header.backgroundcolor=Hintergrundfarbe der \u00DCberschrift +webpages.oaconfig.general.BKUSelection.header.frontcolor=Vordergrundfarbe der \u00DCberschrift +webpages.oaconfig.general.BKUSelection.header.text=\u00DCberschriftstext +webpages.oaconfig.general.BKUSelection.header.button.background=Hintergrundfarbe der Schaltfl\u00E4chen +webpages.oaconfig.general.BKUSelection.header.button.background.focus=Hintergrundfarbe der Schaltfl\u00E4chen (Focus) +webpages.oaconfig.general.BKUSelection.header.button.front=Vordergrundfarbe der Schaltfl\u00E4chen +webpages.oaconfig.general.BKUSelection.redirectTarget=Targetparameter +webpages.oaconfig.general.BKUSelection.fonttype=Formularschrifttyp + webpages.oaconfig.sso.header=Single Sign-On webpages.oaconfig.sso.singlelogouturl=Single Log-Out URL webpages.oaconfig.sso.useauthdataframe=Zus\u00E4tzliche Userabfrage webpages.oaconfig.sso.usesso=Single Sign-On verwenden webpages.oaconfig.protocols.saml1.header=SAML1 Konfiguration +webpages.oaconfig.saml1.isActice=SAML1 aktivieren webpages.oaconfig.saml1.provideStammZahl=Stammzahl \u00FCbertragen webpages.oaconfig.saml1.provideAuthBlock=Authentifizierungsblock \u00FCbertragen webpages.oaconfig.saml1.provideIdentityLink=Personenbindung \u00FCbertragen @@ -303,9 +317,6 @@ validation.general.slrequest.filename.valid=Der Dateiname der angegebenen Securt validation.general.slrequest.file.valid=Die angegebenen SecurtityLayer Transformation konnte nicht geladen werden. validation.general.aditionalauthblocktext=Der Zusatztext f\u00FCr den AuthBlock enth\u00E4lt nicht erlaubte Zeichen. Folgende Zeichen sind nicht erlaubt\: {0} -validation.general.bkuselectioncolor.valid=Die Hintergrundfarbe f\u00FCr die BKU Auswahl enth\u00E4lt keinen g\u00FCltigen Hexadezimalwert. (z.B. \#FFFFFF) -validation.general.bkuselection.specialfeatures.valid=Die speziellen Einstellungen f\u00FCr die BKU Auswahl (Vollmachtsanmeldung ausblenden / zwingend voraussetzen) k\u00F6nnen nicht in Kombination mit SSO verwendet werden. -validation.general.bkuselection.specialfeatures.combination=Eine zwingend erforderliche Vollmachtenanmeldung in Kombination mit einer ausgeblendeten Vollmachtenauswahlcheckbox ist nicht m\u00F6glich. validation.general.bku.handy.empty=Die URL f\u00FCr die Handy-BKU ist leer. validation.general.bku.handy.valid=Die URL f\u00FCr die Handy-BKU hat kein g\u00FCltiges Format. validation.general.bku.local.empty=Die URL f\u00FCr die lokale BKU ist leer. @@ -349,3 +360,15 @@ validation.sso.logouturl.valid=Die URL zum Single Log-Out Service wei\u00DFt kei validation.saml1.providestammzahl=ProvideStammZahl kann nicht mit Applikationen aus dem privatwirtschaftlichen Bereich kombiniert werden. +validation.general.bkuselection.specialfeatures.valid=Die speziellen Einstellungen f\u00FCr die BKU Auswahl (Vollmachtsanmeldung ausblenden / zwingend voraussetzen) k\u00F6nnen nicht in Kombination mit SSO verwendet werden. +validation.general.bkuselection.specialfeatures.combination=Eine zwingend erforderliche Vollmachtenanmeldung in Kombination mit einer ausgeblendeten Vollmachtenauswahlcheckbox ist nicht m\u00F6glich. +validation.general.form.color.background=Die Hintergrundfarbe f\\u00FCr die BKU Auswahl enth\\u00E4lt keinen g\\u00FCltigen Hexadezimalwert. (z.B. \\#FFFFFF) +validation.general.form.color.front=Die Vordergrundfarbe f\\u00FCr die BKU Auswahl enth\\u00E4lt keinen g\\u00FCltigen Hexadezimalwert. (z.B. \\#FFFFFF) +validation.general.form.header.color.back=Die Hintergrundfarbe der BKU-Auswahl\\u00FCberschrift enth\\u00E4lt keinen g\\u00FCltigen Hexadezimalwert. (z.B. \\#FFFFFF) +validation.general.form.header.color.front=Die Vordergrundfarbe der BKU-Auswahl\\u00FCberschrift enth\\u00E4lt keinen g\\u00FCltigen Hexadezimalwert. (z.B. \\#FFFFFF) +validation.general.form.header.text=Die BKU-Auswahl\\u00FCberschrift enth\u00E4lt nicht erlaubte Zeichen. Folgende Zeichen sind nicht erlaubt\: {0} +validation.general.form.button.color.back.focus=Die Hintergrundfarbe f\\u00FCr Focus der BKU-Auswahlbuttons enth\\u00E4lt keinen g\\u00FCltigen Hexadezimalwert. (z.B. \\#FFFFFF) +validation.general.form.button.color.back=Die Hintergrundfarbe der BKU-Auswahlbuttons enth\\u00E4lt keinen g\\u00FCltigen Hexadezimalwert. (z.B. \\#FFFFFF) +validation.general.form.button.color.front=Die Vordergrundfarbe der BKU-Auswahlbuttons enth\\u00E4lt keinen g\\u00FCltigen Hexadezimalwert. (z.B. \\#FFFFFF) +validation.general.form.appletredirecttarget=Der RedirectTarget beinhaltet einen ung\\u00FCltiten Wert. +validation.general.form.fonttype=Der BKU-Auswahl Schrifttyp enth\u00E4lt nicht erlaubte Zeichen. Folgende Zeichen sind nicht erlaubt\: {0} \ No newline at end of file diff --git a/id/ConfigWebTool/src/main/webapp/css/index.css b/id/ConfigWebTool/src/main/webapp/css/index.css index 6733efd4d..911db5334 100644 --- a/id/ConfigWebTool/src/main/webapp/css/index.css +++ b/id/ConfigWebTool/src/main/webapp/css/index.css @@ -134,6 +134,19 @@ display: none; } +#formcustom_button_hidden { + display: none; +} + +#formcustom_button_show { + margin-bottom: 50px; + clear: both; +} + +#formcustom_area { + margin-bottom: 50px; +} + #mail_area input { float: right; } diff --git a/id/ConfigWebTool/src/main/webapp/js/common.js b/id/ConfigWebTool/src/main/webapp/js/common.js index ce2e51863..d32350ce1 100644 --- a/id/ConfigWebTool/src/main/webapp/js/common.js +++ b/id/ConfigWebTool/src/main/webapp/js/common.js @@ -44,6 +44,17 @@ function oaPVP2(){ $('#button_pvp2_hidden').css('display', "block"); } } +function oaFormCustom() { + if ($('#formcustom_area').css('display') == "block") { + $('#formcustom_area').css('display', "none"); + $('#formcustom_button_show').css('display', "block"); + $('#formcustom_button_hidden').css('display', "none"); + } else { + $('#formcustom_area').css('display', "block"); + $('#formcustom_button_show').css('display', "none"); + $('#formcustom_button_hidden').css('display', "block"); + } +} function editOA(oaid){ $('#selectOAForm_OAID').val(oaid); $('#selectOAForm').submit(); diff --git a/id/ConfigWebTool/src/main/webapp/jsp/editOAGeneral.jsp b/id/ConfigWebTool/src/main/webapp/jsp/editOAGeneral.jsp index 6bca21435..f7a722893 100644 --- a/id/ConfigWebTool/src/main/webapp/jsp/editOAGeneral.jsp +++ b/id/ConfigWebTool/src/main/webapp/jsp/editOAGeneral.jsp @@ -286,12 +286,15 @@

<%=LanguageHelper.getGUIString("webpages.oaconfig.protocols.header", request) %>

- - + + + + + + + +
+

<%=LanguageHelper.getGUIString("webpages.oaconfig.general.BKUSelection.header", request) %>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/id/server/auth/src/main/webapp/css/index.css b/id/server/auth/src/main/webapp/css/index.css index d8ad49bae..622f6c255 100644 --- a/id/server/auth/src/main/webapp/css/index.css +++ b/id/server/auth/src/main/webapp/css/index.css @@ -1,451 +1,451 @@ -@charset "utf-8"; - -@media screen and (min-width: 650px) { - - body { - margin:0; - padding:0; - color : #000; - background-color : #fff; - font-family : Verdana, Geneva, Arial, sans-serif; - font-size:76%; - text-align: center; - background-color: #6B7B8B; - } - - #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); - } - - h2#tabheader.full { - padding:5px; - font-size:20px; - color:#fff; - border-bottom:2px solid #fff; - } - - #selectArea.full { - font-size: 15px; - padding-bottom: 65px; - } - - #leftcontent.full { - width: 400px; - margin-top: 30px; - } - - #main.full { - width: 400px; - } - - .setAssertionButton_full { - background: #efefef; - cursor: pointer; - margin-top: 15px; - width: 100px; - height: 30px - } - - #leftbutton.full { - width: 30%; - float:left; - margin-left: 40px; - } - - #rightbutton.full { - width: 30%; - float:right; - margin-right: 45px; - text-align: right; - } - -} - -@media screen and (max-width: 649px) { - - body { - margin:0; - padding:0; - color : #000; - background-color : #fff; - font-family : Verdana, Geneva, Arial, sans-serif; - font-size:76%; - text-align: center; - background-color: #FFFFFF; - } - - #page { - visibility: hidden; - margin-top: 0%; - - } - - #page1 { - visibility: hidden; - } - - #main { - visibility: hidden; - } - - .OA_header { - margin-bottom: 0px; - margin-top: 0px; - font-size: 0pt; - visibility: hidden; - } - - #leftcontent { - visibility: visible; - margin-bottom: 0px; - text-align: left; - border:none; - width:250px; - } - - .setAssertionButton_full { - background: #efefef; - cursor: pointer; - margin-top: 15px; - width: 70px; - height: 25px; - } -} - -* { - margin:0; - padding:0; - border:0; -} - - -/* skiplink */ - -#skiplinks { - position:relative; -} - -p#skiplinks a { - - position: absolute; - top: -999em; - left: -999em; - height: 0; - width: 0; - overflow: hidden; -} - -p#skiplinks a:focus, -p#skiplinks a:hover, -p#skiplinks a:active { - height: auto; - width:auto; - left: 0; - top: 0; - padding: 4px; - position: absolute; - overflow: visible; - text-decoration: none; - z-index: 100; -} - -/*layout */ - -#wrapper { - min-width:746px; - max-width:1258px; - padding: 0 10px; -} - -#banner { - width:100%; - min-height:100px; - padding-top:20px; - position:relative; -} - -#bannerleft { - float:left; -} - -#bannerleft h1 { - font-size:2em; - padding-top:10px; -} - -#bannerright { - float:right; -} - -/* left */ - -.iframebkuselection { - text-align: center; - padding-bottom: 25px; - background-color : #DDDDDD; -} - -h2#tabheader, h2#contentheader { - padding-bottom: 2px; - padding-right: 2px; - padding-top: 2px; - padding-left: 5px; - font-size:1.1em; - color:#fff; - border-bottom:2px solid #fff; -} - -#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; -} - -#bkulogin { - overflow:hidden; - width:250px; - padding-top: 10px; -} - -#bkukarte { - float:left; - background: url(../img/karte.gif) no-repeat top center; - padding: 90px 10px 10px 10px; - text-align:center; - width:40%; -} - -#bkuhandy { - float:right; - background: url(../img/handy.gif) no-repeat top center; - padding: 90px 10px 10px 10px; - text-align:center; - width:40%; -} - -#mandate{ - text-align:center; - padding : 5px 5px 5px 5px; -} - -button { - background: #efefef; - border:1px solid #000; - cursor: pointer; -} - -input { - background: #efefef; - border:1px solid #000; - cursor: pointer; -} - -#installJava, #BrowserNOK { - clear:both; - font-size:0.8em; - padding:4px; -} - -#localBKU { - padding:4px; -} - -.selectText{ - -} - -.selectTextHeader{ - -} - -.sendButton { - background-color: DarkGray; - border-style: solid; - border-width: 1px; - border-color: black; -} - - -#tab { - margin-top:2px; - padding:2px; - clear:both; -} - -#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; -} - -#navlist { - margin-top:20px; -} - -#navlist ul { - list-style: none; - margin-left: 0; -} - -#navlist li { - border-bottom:1px solid #fff; -} - -iframe { - width:250px; - height: 180px -} - -/* right */ - -#rightcontent { - float:right; - width:220px; -} - -#centercontent { - width:auto; - margin: 0 230px; -} - -/* center */ - -#content { - padding:20px; -} - -#content a { - text-decoration:underline; - color: #000; -} - -#content a:hover, #content a:focus, #content a:active { - text-decoration:underline; - color: #000; -} - -p { - margin-bottom:1em; -} - -.lightblock{ - text-align : left; - padding : 5px 5px 5px 5px; -} - - -#mandateLogin { - vertical-align: middle; -} - - -.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; -} - - -/* [OPTIONAL] Geben Sie hier die Farbe fuer den hellen Hintergrund an */ -.hell { - background-color : #DDDDDD; -} - -/* [OPTIONAL] Geben Sie hier die Farbe fuer den dunklen Hintergrund an */ -.dunkel { - background-color: #A02D2D; -} - -/* [OPTIONAL] Geben Sie hier die Farbe fuer Links an */ -#leftcontent a, #content a { - color: white; -} - -.main_header { - color: black; - font-size: 32pt; - position: absolute; - right: 10%; - top: 40px; - -} - -@media print { - #wrapper { width:100%;} - #banner {width:640px;} - #rightcontent {display: none;} - #centercontent {width:400px; margin-right:0;} -} + @charset "utf-8"; + + @media screen and (min-width: 650px) { + + body { + margin:0; + padding:0; + color : #000; + background-color : #fff; + font-family : Verdana, Geneva, Arial, sans-serif; + font-size:76%; + text-align: center; + background-color: #6B7B8B; + } + + #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); + } + + h2#tabheader.full { + padding:5px; + font-size:20px; + color:#fff; + border-bottom:2px solid #fff; + } + + #selectArea.full { + font-size: 15px; + padding-bottom: 65px; + } + + #leftcontent.full { + width: 400px; + margin-top: 30px; + } + + #main.full { + width: 400px; + } + + .setAssertionButton_full { + background: #efefef; + cursor: pointer; + margin-top: 15px; + width: 100px; + height: 30px + } + + #leftbutton.full { + width: 30%; + float:left; + margin-left: 40px; + } + + #rightbutton.full { + width: 30%; + float:right; + margin-right: 45px; + text-align: right; + } + + } + + @media screen and (max-width: 649px) { + + body { + margin:0; + padding:0; + color : #000; + background-color : #fff; + font-family : Verdana, Geneva, Arial, sans-serif; + font-size:76%; + text-align: center; + background-color: #FFFFFF; + } + + #page { + visibility: hidden; + margin-top: 0%; + + } + + #page1 { + visibility: hidden; + } + + #main { + visibility: hidden; + } + + .OA_header { + margin-bottom: 0px; + margin-top: 0px; + font-size: 0pt; + visibility: hidden; + } + + #leftcontent { + visibility: visible; + margin-bottom: 0px; + text-align: left; + border:none; + width:250px; + } + + .setAssertionButton_full { + background: #efefef; + cursor: pointer; + margin-top: 15px; + width: 70px; + height: 25px; + } + } + + * { + margin:0; + padding:0; + border:0; + } + + + /* skiplink */ + + #skiplinks { + position:relative; + } + + p#skiplinks a { + + position: absolute; + top: -999em; + left: -999em; + height: 0; + width: 0; + overflow: hidden; + } + + p#skiplinks a:focus, + p#skiplinks a:hover, + p#skiplinks a:active { + height: auto; + width:auto; + left: 0; + top: 0; + padding: 4px; + position: absolute; + overflow: visible; + text-decoration: none; + z-index: 100; + } + + /*layout */ + + #wrapper { + min-width:746px; + max-width:1258px; + padding: 0 10px; + } + + #banner { + width:100%; + min-height:100px; + padding-top:20px; + position:relative; + } + + #bannerleft { + float:left; + } + + #bannerleft h1 { + font-size:2em; + padding-top:10px; + } + + #bannerright { + float:right; + } + + /* left */ + + .iframebkuselection { + text-align: center; + padding-bottom: 25px; + background-color : #DDDDDD; + } + + h2#tabheader, h2#contentheader { + padding-bottom: 2px; + padding-right: 2px; + padding-top: 2px; + padding-left: 5px; + font-size:1.1em; + color:#fff; + border-bottom:2px solid #fff; + } + + #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; + } + + #bkulogin { + overflow:hidden; + width:250px; + padding-top: 10px; + } + + #bkukarte { + float:left; + background: url(../img/karte.gif) no-repeat top center; + padding: 90px 10px 10px 10px; + text-align:center; + width:40%; + } + + #bkuhandy { + float:right; + background: url(../img/handy.gif) no-repeat top center; + padding: 90px 10px 10px 10px; + text-align:center; + width:40%; + } + + #mandate{ + text-align:center; + padding : 5px 5px 5px 5px; + } + + button { + background: #efefef; + border:1px solid #000; + cursor: pointer; + } + + input { + background: #efefef; + border:1px solid #000; + cursor: pointer; + } + + #installJava, #BrowserNOK { + clear:both; + font-size:0.8em; + padding:4px; + } + + #localBKU { + padding:4px; + } + + .selectText{ + + } + + .selectTextHeader{ + + } + + .sendButton { + background-color: DarkGray; + border-style: solid; + border-width: 1px; + border-color: black; + } + + + #tab { + margin-top:2px; + padding:2px; + clear:both; + } + + #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; + } + + #navlist { + margin-top:20px; + } + + #navlist ul { + list-style: none; + margin-left: 0; + } + + #navlist li { + border-bottom:1px solid #fff; + } + + iframe { + width:250px; + height: 180px + } + + /* right */ + + #rightcontent { + float:right; + width:220px; + } + + #centercontent { + width:auto; + margin: 0 230px; + } + + /* center */ + + #content { + padding:20px; + } + + #content a { + text-decoration:underline; + color: #000; + } + + #content a:hover, #content a:focus, #content a:active { + text-decoration:underline; + color: #000; + } + + p { + margin-bottom:1em; + } + + .lightblock{ + text-align : left; + padding : 5px 5px 5px 5px; + } + + + #mandateLogin { + vertical-align: middle; + } + + + .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; + } + + + /* [OPTIONAL] Geben Sie hier die Farbe fuer den hellen Hintergrund an */ + .hell { + background-color : #DDDDDD; + } + + /* [OPTIONAL] Geben Sie hier die Farbe fuer den dunklen Hintergrund an */ + .dunkel { + background-color: #A02D2D; + } + + /* [OPTIONAL] Geben Sie hier die Farbe fuer Links an */ + #leftcontent a, #content a { + color: white; + } + + .main_header { + color: black; + font-size: 32pt; + position: absolute; + right: 10%; + top: 40px; + + } + + @media print { + #wrapper { width:100%;} + #banner {width:640px;} + #rightcontent {display: none;} + #centercontent {width:400px; margin-right:0;} + } diff --git a/id/server/auth/src/main/webapp/img/2.0/bg_footer.png b/id/server/auth/src/main/webapp/img/2.0/bg_footer.png deleted file mode 100644 index d8a430e0f..000000000 Binary files a/id/server/auth/src/main/webapp/img/2.0/bg_footer.png and /dev/null differ diff --git a/id/server/auth/src/main/webapp/img/2.0/bg_header.png b/id/server/auth/src/main/webapp/img/2.0/bg_header.png deleted file mode 100644 index 190cf97ea..000000000 Binary files a/id/server/auth/src/main/webapp/img/2.0/bg_header.png and /dev/null differ diff --git a/id/server/auth/src/main/webapp/img/2.0/bg_mainnav.png b/id/server/auth/src/main/webapp/img/2.0/bg_mainnav.png deleted file mode 100644 index efaf93582..000000000 Binary files a/id/server/auth/src/main/webapp/img/2.0/bg_mainnav.png and /dev/null differ diff --git a/id/server/auth/src/main/webapp/img/2.0/bg_mainnav_left.png b/id/server/auth/src/main/webapp/img/2.0/bg_mainnav_left.png deleted file mode 100644 index 1dd281826..000000000 Binary files a/id/server/auth/src/main/webapp/img/2.0/bg_mainnav_left.png and /dev/null differ diff --git a/id/server/auth/src/main/webapp/img/2.0/bg_mainnav_right.png b/id/server/auth/src/main/webapp/img/2.0/bg_mainnav_right.png deleted file mode 100644 index f598be094..000000000 Binary files a/id/server/auth/src/main/webapp/img/2.0/bg_mainnav_right.png and /dev/null differ diff --git a/id/server/auth/src/main/webapp/img/2.0/bku_local.gif b/id/server/auth/src/main/webapp/img/2.0/bku_local.gif deleted file mode 100644 index 9bbf631c0..000000000 Binary files a/id/server/auth/src/main/webapp/img/2.0/bku_local.gif and /dev/null differ diff --git a/id/server/auth/src/main/webapp/img/2.0/bku_mobile.gif b/id/server/auth/src/main/webapp/img/2.0/bku_mobile.gif deleted file mode 100644 index 97c8cee35..000000000 Binary files a/id/server/auth/src/main/webapp/img/2.0/bku_mobile.gif and /dev/null differ diff --git a/id/server/auth/src/main/webapp/img/2.0/bku_online.gif b/id/server/auth/src/main/webapp/img/2.0/bku_online.gif deleted file mode 100644 index 03a54765a..000000000 Binary files a/id/server/auth/src/main/webapp/img/2.0/bku_online.gif and /dev/null differ diff --git a/id/server/auth/src/main/webapp/img/2.0/checkbox_checked.png b/id/server/auth/src/main/webapp/img/2.0/checkbox_checked.png deleted file mode 100644 index 562fbc66f..000000000 Binary files a/id/server/auth/src/main/webapp/img/2.0/checkbox_checked.png and /dev/null differ diff --git a/id/server/auth/src/main/webapp/img/2.0/checkbox_unchecked.gif b/id/server/auth/src/main/webapp/img/2.0/checkbox_unchecked.gif deleted file mode 100644 index c93a6ea06..000000000 Binary files a/id/server/auth/src/main/webapp/img/2.0/checkbox_unchecked.gif and /dev/null differ diff --git a/id/server/auth/src/main/webapp/img/2.0/dsk.ico b/id/server/auth/src/main/webapp/img/2.0/dsk.ico deleted file mode 100644 index df7e8d31e..000000000 Binary files a/id/server/auth/src/main/webapp/img/2.0/dsk.ico and /dev/null differ diff --git a/id/server/auth/src/main/webapp/img/2.0/logo.png b/id/server/auth/src/main/webapp/img/2.0/logo.png deleted file mode 100644 index dfb4351d0..000000000 Binary files a/id/server/auth/src/main/webapp/img/2.0/logo.png and /dev/null differ diff --git a/id/server/auth/src/main/webapp/img/2.0/logo_digitalesOE.gif b/id/server/auth/src/main/webapp/img/2.0/logo_digitalesOE.gif deleted file mode 100644 index ff83cd82b..000000000 Binary files a/id/server/auth/src/main/webapp/img/2.0/logo_digitalesOE.gif and /dev/null differ diff --git a/id/server/auth/src/main/webapp/img/2.0/logo_dsk_nav.png b/id/server/auth/src/main/webapp/img/2.0/logo_dsk_nav.png deleted file mode 100644 index 9b3e7055a..000000000 Binary files a/id/server/auth/src/main/webapp/img/2.0/logo_dsk_nav.png and /dev/null differ diff --git a/id/server/auth/src/main/webapp/img/2.0/logo_dsk_szr_header.png b/id/server/auth/src/main/webapp/img/2.0/logo_dsk_szr_header.png deleted file mode 100644 index b4f8be6d8..000000000 Binary files a/id/server/auth/src/main/webapp/img/2.0/logo_dsk_szr_header.png and /dev/null differ diff --git a/id/server/auth/src/main/webapp/img/2.0/std_handy.gif b/id/server/auth/src/main/webapp/img/2.0/std_handy.gif deleted file mode 100644 index 088ec0957..000000000 Binary files a/id/server/auth/src/main/webapp/img/2.0/std_handy.gif and /dev/null differ diff --git a/id/server/auth/src/main/webapp/img/2.0/std_karte.gif b/id/server/auth/src/main/webapp/img/2.0/std_karte.gif deleted file mode 100644 index 1ec7afc2e..000000000 Binary files a/id/server/auth/src/main/webapp/img/2.0/std_karte.gif and /dev/null differ diff --git a/id/server/auth/src/main/webapp/img/mobile-bku.png b/id/server/auth/src/main/webapp/img/mobile-bku.png new file mode 100644 index 000000000..697514273 Binary files /dev/null and b/id/server/auth/src/main/webapp/img/mobile-bku.png differ diff --git a/id/server/auth/src/main/webapp/img/online-bku.png b/id/server/auth/src/main/webapp/img/online-bku.png new file mode 100644 index 000000000..d7d524999 Binary files /dev/null and b/id/server/auth/src/main/webapp/img/online-bku.png differ diff --git a/id/server/auth/src/main/webapp/img/valid-html5-blue.png b/id/server/auth/src/main/webapp/img/valid-html5-blue.png new file mode 100644 index 000000000..91ebe3e87 Binary files /dev/null and b/id/server/auth/src/main/webapp/img/valid-html5-blue.png differ diff --git a/id/server/auth/src/main/webapp/img/w3cvalidhtml5.jpg b/id/server/auth/src/main/webapp/img/w3cvalidhtml5.jpg new file mode 100644 index 000000000..2cd65412e Binary files /dev/null and b/id/server/auth/src/main/webapp/img/w3cvalidhtml5.jpg differ diff --git a/id/server/auth/src/main/webapp/template_handyBKU.html b/id/server/auth/src/main/webapp/template_handyBKU.html index 0ad73a6f3..91f7fad6f 100644 --- a/id/server/auth/src/main/webapp/template_handyBKU.html +++ b/id/server/auth/src/main/webapp/template_handyBKU.html @@ -19,13 +19,13 @@ - - + + - + - +
diff --git a/id/server/auth/src/main/webapp/template_onlineBKU.html b/id/server/auth/src/main/webapp/template_onlineBKU.html index 8f9fce8b4..534d3dc55 100644 --- a/id/server/auth/src/main/webapp/template_onlineBKU.html +++ b/id/server/auth/src/main/webapp/template_onlineBKU.html @@ -19,12 +19,12 @@ - - + + - +
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 @@ moa-common jar - + MOA.spss.server moa-spss-lib 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 = ""; /** special tag in the HTML template to be substituted for the BKU URL */ - private static final String COLOR_TAG = ""; /** private static int all contains the representation to replace all tags*/ private static final int ALL = -1; + + private static final String COLOR_TAG = ""; + private static final String REDIRECTTARGETTAG = ""; + private static final String APPLETWIDTH_TAG = ""; + private static final String APPLETHEIGHT_TAG = ""; /** default HTML template */ private static final String DEFAULT_HTML_TEMPLATE = @@ -115,6 +121,8 @@ public class GetIdentityLinkFormBuilder extends Builder { * may be null, 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 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 getFormCustomizaten() { + TemplatesType templates = oa_auth.getTemplates(); + + Map map = new HashMap(); + 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 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(); + 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 map = oaParam.getFormCustomizaten(); + Set elements = map.keySet(); + for (String element: elements) { + value = value.replace(element, map.get(element)); + } + + return value; + } + + public static Map 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 @@ - - - - - - - - - - - - -
- -
- -

Anmeldung an: #OAName#

- -
-
-

- Login mit Bürgerkarte -

-
- -
- - - - - - -
i
-
- -
- -
- -
- -
- -
-
- - - - - - - - - - -

- Alternativ können Sie eine lokal installierte BKU verwenden. -

-
- - - - - -
-
-
-
- - + Anmeldung mittels Bürgerkarte oder Handy-Signatur + + +
+
+

Anmeldung an: #OAName#

+
+
+
+

#HEADER_TEXT#

+
+
+
+
+ + + +
+
+
+
+ OnlineBKU + +
+
+ HandyBKU + +
+
+
+
+ + + + + + + + +

+ Alternativ können Sie eine lokal installierte BKU verwenden. +

+
+
+ + + + +
+
+
+
+ +
+ + \ 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 @@ + - - + + + + + Anmeldung an Online-Applikation
-
+
-
-
-

- Anmeldeinformationen: - -

+
+
+
+

+ Anmeldeinformationen: +

+
+ +
+

Anmeldung an: #OAName#

-
- Anmeldung an: -

#OAName#

- - -
+
- +
-
+
- +
@@ -49,6 +598,18 @@
+
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); diff --git a/id/server/moa-id-commons/src/main/resources/config/moaid_config_2.0.xsd b/id/server/moa-id-commons/src/main/resources/config/moaid_config_2.0.xsd index 20251d3bb..085f187ff 100644 --- a/id/server/moa-id-commons/src/main/resources/config/moaid_config_2.0.xsd +++ b/id/server/moa-id-commons/src/main/resources/config/moaid_config_2.0.xsd @@ -451,7 +451,7 @@ - + @@ -860,6 +860,7 @@ + @@ -937,6 +938,7 @@ + @@ -951,9 +953,18 @@ + - - + + + + + + + + + + - + -- cgit v1.2.3