diff options
| author | Thomas Lenz <tlenz@iaik.tugraz.at> | 2013-09-26 08:05:52 +0200 | 
|---|---|---|
| committer | Thomas Lenz <tlenz@iaik.tugraz.at> | 2013-09-26 08:05:52 +0200 | 
| commit | 2c82d41a98e2617088cdcf3db72b40d9747ae292 (patch) | |
| tree | 4ed7ddc991d3919cf8c17f36a53cae2d1c9c677e /id/ConfigWebTool/src | |
| parent | 0773942456e68cf5560655b1bd782ab792c66251 (diff) | |
| download | moa-id-spss-2c82d41a98e2617088cdcf3db72b40d9747ae292.tar.gz moa-id-spss-2c82d41a98e2617088cdcf3db72b40d9747ae292.tar.bz2 moa-id-spss-2c82d41a98e2617088cdcf3db72b40d9747ae292.zip | |
Features:
-- Add additional parameters to customize BKUSelectionForm and SendAssertionForm
-- change Target configuration
-- insert some logging
Bugfixes:
-- Nullpointerexceptions in combination of an old userdatabase entry and a actual configuration tool version
Diffstat (limited to 'id/ConfigWebTool/src')
13 files changed, 419 insertions, 165 deletions
| diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/Constants.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/Constants.java index 2705659cb..915ddf8ff 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/Constants.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/Constants.java @@ -46,5 +46,8 @@ public class Constants {  	public static final String IDENIFICATIONTYPE_ZVR = "ZVR";  	public static final String IDENIFICATIONTYPE_BASEID = "urn:publicid:gv.at:baseid+"; +	public static final String IDENIFICATIONTYPE_BASEID_FN = IDENIFICATIONTYPE_BASEID + "X" + IDENIFICATIONTYPE_FN; +	public static final String IDENIFICATIONTYPE_BASEID_ZVR = IDENIFICATIONTYPE_BASEID + "X" + IDENIFICATIONTYPE_ZVR; +			  	public static final String PREFIX_WPBK = "urn:publicid:gv.at:wbpk+";  } diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/auth/pvp2/Authenticate.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/auth/pvp2/Authenticate.java index ed496ae16..8b775f692 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/auth/pvp2/Authenticate.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/auth/pvp2/Authenticate.java @@ -83,8 +83,8 @@ public class Authenticate extends HttpServlet {  		try {  			builder = factory.newDocumentBuilder();  		} catch (ParserConfigurationException e) { -			// TODO Auto-generated catch block -			e.printStackTrace(); +			log.warn("PVP2 AuthenticationServlet can not be initialized.", e); +			  		}  	} diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/config/ConfigurationProvider.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/config/ConfigurationProvider.java index f08632d83..39d276701 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/config/ConfigurationProvider.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/config/ConfigurationProvider.java @@ -100,7 +100,6 @@ public class ConfigurationProvider {  			DefaultBootstrap.bootstrap();  			log.info("OPENSAML initialized"); -			//TODO: start CleanUP Thread  			UserRequestCleaner.start(); 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 2b4ea53c1..90c02e0e4 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 @@ -5,10 +5,10 @@ import java.util.Arrays;  import java.util.HashMap;  import java.util.List;  import java.util.Map; -import java.util.Set;  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,6 +63,10 @@ public class OAGeneralConfig {  	private boolean isHideBPKAuthBlock = false; +	private boolean showMandateLoginButton = true; +	private boolean onlyMandateAllowed = false; +	private String bkuSelectionBackGroundColor = null; +	  	private Map<String, byte[]> transformations; @@ -98,16 +102,13 @@ public class OAGeneralConfig {  		identifier = dbOAConfig.getPublicURLPrefix();  		String target_full = dbOAConfig.getTarget(); -		  		if (MiscUtil.isNotEmpty(target_full)) { -			String[] target_split = target_full.split("-"); -  			if (TargetValidator.isValidTarget(target_full)) { -				target = dbOAConfig.getTarget(); -				if (target_split.length > 1) -					target_subsector = target_split[1]; -				 +				target = target_full; +								  			} else { +				String[] target_split = target_full.split("-"); +				  				if (TargetValidator.isValidTarget(target_split[0])) {  					target = target_split[0];  					if (target_split.length > 1) @@ -196,6 +197,19 @@ 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) @@ -211,7 +225,6 @@ public class OAGeneralConfig {  		isHideBPKAuthBlock = dbOAConfig.isRemoveBPKFromAuthBlock(); -		  	}  	public String getIdentifier() { @@ -559,5 +572,54 @@ 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/filter/AuthenticationFilter.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/filter/AuthenticationFilter.java index 9f81e1212..e7e1beb45 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/filter/AuthenticationFilter.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/filter/AuthenticationFilter.java @@ -147,24 +147,14 @@ public class AuthenticationFilter implements Filter{  	              }  			} else { -				//check login Daten -				 -				//loginPageForward = true; -				 -				  	            if (MiscUtil.isNotEmpty(getAuthenticatedPage())) {  	                log.debug("Unable to find authentication data. Authenticated page is given so there is no need to save original request url. " + (loginPageForward ? "Forwarding" : "Redirecting") + " to login page \"" + loginPage + "\"."); -	                 -	                  	            }   	            else {  	            	log.debug("Unable to find authentication data. Storing request url and " + (loginPageForward ? "forwarding" : "redirecting") + " to login page \"" + loginPage + "\"."); -	                   // TODO: save HttpServletRequest -	                   // log.debug("new CustomHttpServletRequest(request).toString() = -	                   // {}", new -	                   // CustomHttpServletRequest(httpServletRequest).toString());  	                   session.setAttribute(STORED_REQUEST_URL_ID, requestURL); +	                     	            }  	            if (loginPageForward) { 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 e07a0ba77..1a8e0048b 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 @@ -18,6 +18,7 @@ import org.apache.struts2.interceptor.ServletResponseAware;  import at.gv.egovernment.moa.id.commons.db.ConfigurationDBRead;  import at.gv.egovernment.moa.id.commons.db.ConfigurationDBUtils;  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.IdentificationNumber;  import at.gv.egovernment.moa.id.commons.db.dao.config.MOAIDConfiguration; @@ -72,8 +73,13 @@ ServletResponseAware {  	private boolean newOA;  	private String formID; -	private String nextPage; +	private boolean onlyBusinessService = false; +	private boolean subTargetSet = false; +	private boolean deaktivededBusinessService = false; +	private boolean isMetaDataRefreshRequired = false; +	private String nextPage; +  	private OAGeneralConfig generalOA = new OAGeneralConfig();  	private OAPVP2Config pvp2OA = new OAPVP2Config();  	private OASAML1Config saml1OA = new OASAML1Config(); @@ -99,13 +105,15 @@ ServletResponseAware {  			return Constants.STRUTS_ERROR;  		}  		oaid = Long.valueOf(oaidobj); -			 +		 +		UserDatabase userdb = null;  		OnlineApplication onlineapplication = null;; +		  		if (authUser.isAdmin())  			onlineapplication = ConfigurationDBRead.getOnlineApplication(oaid);  		else { -			UserDatabase userdb = ConfigurationDBRead.getUserWithID(authUser.getUserID()); +			userdb = ConfigurationDBRead.getUserWithID(authUser.getUserID());  			if (!authUser.isAdmin() && userdb.isIsMailAddressVerified() != null  					&& !userdb.isIsMailAddressVerified()) { @@ -113,6 +121,8 @@ ServletResponseAware {  				addActionError(LanguageHelper.getErrorString("error.editoa.mailverification"));  			} +			 +			//TODO: change to direct Database operation  			List<OnlineApplication> oas = userdb.getOnlineApplication();  			for (OnlineApplication oa : oas) {  				if (oa.getHjid() == oaid) { @@ -129,6 +139,7 @@ ServletResponseAware {  		generalOA.parse(onlineapplication);  		ssoOA.parse(onlineapplication);  		saml1OA.parse(onlineapplication); +		  		List<String> errors = pvp2OA.parse(onlineapplication);  		if (errors.size() > 0) { @@ -136,8 +147,13 @@ ServletResponseAware {  				addActionError(el);	  		} +		subTargetSet = MiscUtil.isNotEmpty(generalOA.getTarget_subsector()); +		 +		//set UserSpezific OA Parameters +		if (!authUser.isAdmin()) +			generateUserSpecificConfigurationOptions(userdb); +		  		ConfigurationDBUtils.closeSession(); -	  		session.setAttribute(Constants.SESSION_OAID, oaid);  		formID = Random.nextRandom(); @@ -165,14 +181,18 @@ ServletResponseAware {  		authUser = (AuthenticatedUser) authUserObj;  		UserDatabase userdb = ConfigurationDBRead.getUserWithID(authUser.getUserID()); +		  		if (!authUser.isAdmin() && userdb.isIsMailAddressVerified() != null   				&& !userdb.isIsMailAddressVerified()) {  			log.info("Online-Applikation managemant disabled. Mail address is not verified.");  			addActionError(LanguageHelper.getErrorString("error.editoa.mailverification"));  		} +				 +		//set UserSpezific OA Parameters +		if (!authUser.isAdmin()) +			generateUserSpecificConfigurationOptions(userdb);  		newOA = true; -		  		formID = Random.nextRandom();  		session.setAttribute(Constants.SESSION_FORMID, formID); @@ -205,7 +225,8 @@ ServletResponseAware {  		session.setAttribute(Constants.SESSION_FORMID, null);  		UserDatabase userdb = ConfigurationDBRead.getUserWithID(authUser.getUserID()); -		if (!authUser.isAdmin() && !userdb.isIsMailAddressVerified()) { +		if (!authUser.isAdmin() &&  +				userdb.isIsMailAddressVerified() != null && !userdb.isIsMailAddressVerified()) {  			log.info("Online-Applikation managemant disabled. Mail address is not verified.");  			addActionError(LanguageHelper.getErrorString("error.editoa.mailverification"));  			return Constants.STRUTS_SUCCESS; @@ -265,7 +286,11 @@ ServletResponseAware {  				}  			}  		} -							 +		 +		//set UserSpezific OA Parameters +		if (!authUser.isAdmin()) +			generateUserSpecificConfigurationOptions(userdb); +		  		//check form  		OAGeneralConfigValidation validatior_general = new OAGeneralConfigValidation();  		OAPVP2ConfigValidation validatior_pvp2 = new OAPVP2ConfigValidation(); @@ -279,6 +304,13 @@ ServletResponseAware {  		errors.addAll(validatior_sso.validate(ssoOA, authUser.isAdmin()));  		errors.addAll(validator_stork.validate(storkOA));  +		//Do not allow SSO in combination with special BKUSelection features +		if (ssoOA.isUseSSO() &&  +				( generalOA.isOnlyMandateAllowed() || !generalOA.isShowMandateLoginButton()) ) { +			log.warn("Special BKUSelection features can not be used in combination with SSO"); +			errors.add(LanguageHelper.getErrorString("validation.general.bkuselection.specialfeatures.valid"));			 +		} +		  		if (errors.size() > 0) {  			log.info("OAConfiguration with ID " + generalOA.getIdentifier() + " has some errors.");  			for (String el : errors) @@ -289,7 +321,7 @@ ServletResponseAware {  			return Constants.STRUTS_ERROR_VALIDATION;  		} else { -			 +						  			boolean newentry = false;  			if (onlineapplication == null) { @@ -300,7 +332,8 @@ ServletResponseAware {  				if (!authUser.isAdmin()) {  					onlineapplication.setIsAdminRequired(true); -				} +				} else +					isMetaDataRefreshRequired = true;  			} else { @@ -321,6 +354,7 @@ ServletResponseAware {  										&& onlineapplication.isIsAdminRequired()) ) {  				onlineapplication.setIsAdminRequired(false); +				isMetaDataRefreshRequired = true;  				if (onlineapplication.getHjid() != null)  					userdb = ConfigurationDBRead.getUsersWithOADBID(onlineapplication.getHjid()); @@ -342,9 +376,10 @@ ServletResponseAware {  			if (pvp2OA.getMetaDataURL() != null) {  				try { -					if (newentry ||	!pvp2OA.getMetaDataURL() -							.equals(onlineapplication.getAuthComponentOA().getOAPVP2().getMetadataURL())) { +					if (isMetaDataRefreshRequired || !pvp2OA.getMetaDataURL(). +							equals(onlineapplication.getAuthComponentOA().getOAPVP2().getMetadataURL())) { +						log.debug("Set PVP2 Metadata refresh flag.");  						MOAIDConfiguration moaconfig = ConfigurationDBRead.getMOAIDConfiguration();  						moaconfig.setPvp2RefreshItem(new Date());  						ConfigurationDBUtils.saveOrUpdate(moaconfig); @@ -576,7 +611,8 @@ ServletResponseAware {  		dboa.setPublicURLPrefix(generalOA.getIdentifier()); -		if (generalOA.isBusinessService()) { +		if (generalOA.isBusinessService() || onlyBusinessService) { +			  			dboa.setType(Constants.MOA_CONFIG_BUSINESSSERVICE);  			String num = generalOA.getIdentificationNumber().replaceAll(" ", ""); @@ -609,37 +645,36 @@ ServletResponseAware {  					dboa.setTargetFriendlyName(generalOA.getTargetFriendlyName());  				} else { -					String target_full = generalOA.getTarget(); -					String[] target_split = target_full.split("-"); -					if (MiscUtil.isNotEmpty(generalOA.getTarget_subsector())) -						dboa.setTarget(target_split[0] + "-" + generalOA.getTarget_subsector()); +					 +					String target = generalOA.getTarget(); + +					if (MiscUtil.isNotEmpty(generalOA.getTarget_subsector()) && subTargetSet) +						dboa.setTarget(target + "-" + generalOA.getTarget_subsector());  					else -						dboa.setTarget(target_full); +						dboa.setTarget(target); -					String targetname = TargetValidator.getTargetFriendlyName(target_full); +					String targetname = TargetValidator.getTargetFriendlyName(target);  					if (MiscUtil.isNotEmpty(targetname))  						dboa.setTargetFriendlyName(targetname); -					else  -						dboa.setTargetFriendlyName(TargetValidator.getTargetFriendlyName(target_split[0]));							 +					  				}  			} else { +				  				if (MiscUtil.isNotEmpty(generalOA.getTarget())) { -					String target_full = generalOA.getTarget(); -					String[] target_split = target_full.split("-"); -					dboa.setTarget(target_split[0] + "-" + generalOA.getTarget_subsector()); -					if (MiscUtil.isNotEmpty(generalOA.getTarget_subsector())) -						dboa.setTarget(target_split[0] + "-" + generalOA.getTarget_subsector()); +					String target = generalOA.getTarget(); +										 +					if (MiscUtil.isNotEmpty(generalOA.getTarget_subsector()) && subTargetSet) +						dboa.setTarget(target + "-" + generalOA.getTarget_subsector());  					else -						dboa.setTarget(target_full); +						dboa.setTarget(target); -					String targetname = TargetValidator.getTargetFriendlyName(target_full); +					String targetname = TargetValidator.getTargetFriendlyName(target);  					if (MiscUtil.isNotEmpty(targetname))  						dboa.setTargetFriendlyName(targetname); -					else  -						dboa.setTargetFriendlyName(TargetValidator.getTargetFriendlyName(target_split[0])); +					  				}  			}			  		} @@ -693,6 +728,30 @@ ServletResponseAware {  				if (template != null && template.size() > 0)  					template.clear();  			} +			 +			 +			BKUSelectionCustomizationType bkuselectioncustom = templates.getBKUSelectionCustomization(); +			if (bkuselectioncustom == null) { +				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()); +			  		}  		//set default transformation if it is empty @@ -784,6 +843,29 @@ ServletResponseAware {  		return null;  	} +	private void generateUserSpecificConfigurationOptions(UserDatabase userdb) { +		 +		if (userdb.isIsMandateUser() != null && userdb.isIsMandateUser()) { +			String bpk = userdb.getBpk();   +			if (bpk.startsWith(Constants.IDENIFICATIONTYPE_BASEID_FN) || +					bpk.startsWith(Constants.IDENIFICATIONTYPE_BASEID_ZVR)) { +				 +				onlyBusinessService = true; +				generalOA.setBusinessService(true); +				 +			} +			 +			deaktivededBusinessService = true; +			String[] split = bpk.split("\\+"); +			generalOA.setIdentificationType(split[1].substring(1)); +			generalOA.setIdentificationNumber(split[2]); +			 +		} +		 +		 +				 +	} +	  	public String setGeneralOAConfig() {  		return Constants.STRUTS_SUCCESS; @@ -925,8 +1007,46 @@ ServletResponseAware {  	public void setFormID(String formID) {  		this.formID = formID;  	} -	 -	 -	 +	/** +	 * @return the onlyBusinessService +	 */ +	public boolean isOnlyBusinessService() { +		return onlyBusinessService; +	} + +	/** +	 * @param onlyBusinessService the onlyBusinessService to set +	 */ +	public void setOnlyBusinessService(boolean onlyBusinessService) { +		this.onlyBusinessService = onlyBusinessService; +	} + +	/** +	 * @return the subTargetSet +	 */ +	public boolean isSubTargetSet() { +		return subTargetSet; +	} + +	/** +	 * @param subTargetSet the subTargetSet to set +	 */ +	public void setSubTargetSet(boolean subTargetSet) { +		this.subTargetSet = subTargetSet; +	} + +	/** +	 * @return the deaktivededBusinessService +	 */ +	public boolean isDeaktivededBusinessService() { +		return deaktivededBusinessService; +	} + +	/** +	 * @param deaktivededBusinessService the deaktivededBusinessService to set +	 */ +	public void setDeaktivededBusinessService(boolean deaktivededBusinessService) { +		this.deaktivededBusinessService = deaktivededBusinessService; +	}  } diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/IndexAction.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/IndexAction.java index 5a88b1324..f07022394 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/IndexAction.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/IndexAction.java @@ -379,6 +379,11 @@ public class IndexAction extends ActionSupport implements ServletRequestAware,  								return Constants.STRUTS_ERROR;  							} +							//TODO: maybe remove this default value in a later version  +							boolean ismandateuser = false; +							if (dbuser.isIsMandateUser() != null) +								ismandateuser = dbuser.isIsMandateUser(); +							  							authUser = new AuthenticatedUser(  									dbuser.getHjid(),   									dbuser.getGivenname(),  @@ -387,7 +392,7 @@ public class IndexAction extends ActionSupport implements ServletRequestAware,  									dbuser.getUsername(),   									true,   									dbuser.isIsAdmin(), -									dbuser.isIsMandateUser(), +									ismandateuser,  									true);  							Date date = DateTimeHelper.parseDateTime(dbuser.getLastLogin()); @@ -414,23 +419,24 @@ public class IndexAction extends ActionSupport implements ServletRequestAware,  					}  					log.info("PVP2 Assertion was maybe not well formed, because no Assertion element could be found."); -					addActionError(LanguageHelper.getErrorString("error.login")); +					addActionError(LanguageHelper.getErrorString("error.login.internal"));  					return Constants.STRUTS_ERROR;  				} else {  					log.info("Receive Error Assertion."); +					addActionError(LanguageHelper.getErrorString("error.login"));  					return Constants.STRUTS_ERROR;  				}  			} catch (Exception e) { -				log.warn("Only http POST Requests can be used", e); -				addActionError(LanguageHelper.getErrorString("error.login")); +				log.warn("An internal error occurs.", e); +				addActionError(LanguageHelper.getErrorString("error.login.internal"));  				return Constants.STRUTS_ERROR;  			}  		} else {  			log.info("Only http POST Requests can be used"); -			addActionError(LanguageHelper.getErrorString("error.login")); +			addActionError(LanguageHelper.getErrorString("error.login.internal"));  			return Constants.STRUTS_ERROR;  		}  	} diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/TargetValidator.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/TargetValidator.java index 65e8a549e..c30ee46b7 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/TargetValidator.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/TargetValidator.java @@ -25,7 +25,7 @@ public class TargetValidator {  		targetList.put("EF", "Ein- und Ausfuhr");  		targetList.put("GH", "Gesundheit");  		targetList.put("GS", "Gesellschaft und Soziales"); -		targetList.put("GS-RE", "Restitution"); +//		targetList.put("GS-RE", "Restitution");  		targetList.put("JR", "Justiz/Zivilrechtswesen");  		targetList.put("KL", "Kultus");  		targetList.put("KU", "Kunst und Kultur"); @@ -35,8 +35,8 @@ public class TargetValidator {  		targetList.put("SA", "Steuern und Abgaben");  		targetList.put("SA", "Sport und Freizeit");  		targetList.put("SO", "Sicherheit und Ordnung"); -		targetList.put("SO-VR", "Vereinsregister"); -		targetList.put("SR-RG", "Strafregister"); +//		targetList.put("SO-VR", "Vereinsregister"); +//		targetList.put("SR-RG", "Strafregister");  		targetList.put("SV", "Sozialversicherung");  		targetList.put("UW", "Umwelt");  		targetList.put("VT", "Verkehr und Technik"); @@ -50,7 +50,7 @@ public class TargetValidator {  		targetList.put("PV", "Personalverwaltung");  		targetList.put("RD", "Zentraler Rechtsdienst");  		targetList.put("VS", "Zentrale Durchführung von Verwaltungsstrafverfahren"); -		targetList.put("VS-RG", "Zentrales Verwaltungsstrafregister"); +//		targetList.put("VS-RG", "Zentrales Verwaltungsstrafregister");  		targetList.put("ZU", "Zustellungen");  	} diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/ValidationHelper.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/ValidationHelper.java index eadf15f84..17da83286 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/ValidationHelper.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/ValidationHelper.java @@ -35,6 +35,9 @@ public class ValidationHelper {  	private static final Logger log = Logger.getLogger(ValidationHelper.class); +	private static final String TEMPLATE_DATEFORMAT = "dd.MM.yyyy"; +	 +	  	public static boolean isPublicServiceAllowed(String identifier) {  		SSLSocket socket = null; @@ -216,7 +219,10 @@ public class ValidationHelper {  	}  	public static boolean isDateFormat(String dateString) { -		SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy"); +		if (dateString.length() > TEMPLATE_DATEFORMAT.length()) +			return false; +		 +		SimpleDateFormat sdf = new SimpleDateFormat(TEMPLATE_DATEFORMAT);  		try {  			sdf.parse(dateString);  			return true; @@ -300,4 +306,20 @@ public class ValidationHelper {  		return "; % \" ' ` < >";  	} +	 +	public static boolean isValidHexValue(String param) { +		 +		try { +			if (param.startsWith("#") && param.length() <= 7) {			 +				Long test = Long.decode(param); +				return true; +			} +			 +		} catch (Exception e) { +			 +		} +		return false; +		 +	} +	  } 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 99371a0e7..8ef7c44cf 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 @@ -6,11 +6,8 @@ import java.util.Map;  import org.apache.log4j.Logger; -import at.gv.egovernment.moa.id.commons.db.dao.config.MOAKeyBoxSelector;  import at.gv.egovernment.moa.id.configuration.Constants; -import at.gv.egovernment.moa.id.configuration.config.ConfigurationProvider;  import at.gv.egovernment.moa.id.configuration.data.oa.OAGeneralConfig; -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.validation.CompanyNumberValidator;  import at.gv.egovernment.moa.id.configuration.validation.ValidationHelper; @@ -35,6 +32,23 @@ 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 eaa9b981a..5e337c7a5 100644 --- a/id/ConfigWebTool/src/main/resources/applicationResources.properties +++ b/id/ConfigWebTool/src/main/resources/applicationResources.properties @@ -22,7 +22,7 @@ errors.importexport.export.noconfig=Die Konfiguration kann nicht exportiert werd  errors.edit.user.userid=Es wurde keine g\u00FCtige User ID \u00FCbergeben.  errors.edit.user.save=Der Benutzer konnte nicht in die Datenbank eingetragen werden.  errors.edit.user.notallowed=Das Bearbeiten fremder Benutzereinstellungen ist nur dem Admin erlaubt. -error.login=Der Anmeldevorgang durch einen internen Fehler unterbrochen. Bitte Versuchen sie es noch einmal. +error.login=Der Anmeldevorgang wurde abgebrochen. Bitte Versuchen sie es noch einmal.  error.mail.send=An die angegebene Mailadresse konnte keine Nachticht versendet werden.  error.mail.verification=Der Verifikationsvorgang wurde durch einen internen Fehler unterbrochen. Bitte Versuchen sie es noch einmal.   error.editoa.mailverification=Die Verwaltung von Online-Applikationen ist vor\u00FCbergehend deaktiviert, da die Mailadresse des Benutzeraccounts noch nicht verifiziert wurde. @@ -172,6 +172,7 @@ webpages.oaconfig.general.target.friendlyname.disabled=Bezeichnung des Bereichs  webpages.oaconfig.general.target.admin.disabled=Bereich (vom Administrator eingestellt)  webpages.oaconfig.general.target=Bereich (Target)  webpages.oaconfig.general.target.subsector=Sub-Bereich +webpages.oaconfig.general.target.subsector.checkbox=Target verfeinern  webpages.oaconfig.general.business.header=Privatwirtschaftlicher Bereich  webpages.oaconfig.general.business.value=Identifikationsnummer  webpages.oaconfig.general.business.type=Type der Identifikationsnummer @@ -181,6 +182,9 @@ 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 @@ -299,6 +303,9 @@ 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. diff --git a/id/ConfigWebTool/src/main/webapp/js/common.js b/id/ConfigWebTool/src/main/webapp/js/common.js index 0b69854da..ce2e51863 100644 --- a/id/ConfigWebTool/src/main/webapp/js/common.js +++ b/id/ConfigWebTool/src/main/webapp/js/common.js @@ -78,6 +78,17 @@ function HideAdminTarget() {  	$('#adminTarget').removeAttr("checked");  	$('#admin_target_area').css('display', "none");  } +function oaTargetSubSector() { +	if ($('#OAisTargetSubSector').attr('checked') == 'checked') { +		 +		$('#wwgrp_OAtarget_subsector').css('display', "block"); +		 +	} else { +		 +		$('#wwgrp_OAtarget_subsector').css('display', "none"); +		 +	} +}  function UseUserNamePassword() {  	if ($('#isusernamepasswordallowed').size() == 0) {  		$('#usernamepassword_area').css('display', "none"); @@ -122,5 +133,6 @@ function oaOnLoad() {  	oaSSOService();  	oaLegacyService();  	AdminTarget(); +	oaTargetSubSector();  	return true;  }
\ No newline at end of file diff --git a/id/ConfigWebTool/src/main/webapp/jsp/editOAGeneral.jsp b/id/ConfigWebTool/src/main/webapp/jsp/editOAGeneral.jsp index 68d47d6b8..6bca21435 100644 --- a/id/ConfigWebTool/src/main/webapp/jsp/editOAGeneral.jsp +++ b/id/ConfigWebTool/src/main/webapp/jsp/editOAGeneral.jsp @@ -64,121 +64,119 @@  							key="webpages.oaconfig.general.isbusinessservice"  							cssClass="checkbox"  							onclick="oaBusinessService();" -							id="OAisbusinessservice"> +							id="OAisbusinessservice" +							disabled="%{isOnlyBusinessService()}">  						</s:checkbox>  					</div>   					<div id="oa_config_businessservice" class="oa_config_block">  						<h3><%=LanguageHelper.getGUIString("webpages.oaconfig.general.business.header", request) %></h3> -<%-- 						<s:select list="generalOA.identificationTypeList" -											key="webpages.oaconfig.general.business.type" -											labelposition="left" -											cssClass="selectfield" -											value="%{generalOA.identificationType}" -											name="generalOA.identificationType"> -						</s:select> --%> -						  						<s:select list="generalOA.identificationTypeList"  											key="webpages.oaconfig.general.business.value"  											labelposition="left"  											cssClass="selectfield"  											value="%{generalOA.identificationType}" -											name="generalOA.identificationType"> +											name="generalOA.identificationType" +											disabled="%{isDeaktivededBusinessService()}">  						</s:select> -<%-- 						<s:textfield name="generalOA.identificationNumber"  -							value="%{generalOA.identificationNumber}"  -							labelposition="left" -							key="webpages.oaconfig.general.business.value" -							cssClass="selectfield"> -						</s:textfield>		 --%> -						  						<s:textfield name="generalOA.identificationNumber"   							value="%{generalOA.identificationNumber}"  -							cssClass="textfield_middle"> +							cssClass="textfield_middle" +							disabled="%{isDeaktivededBusinessService()}">  						</s:textfield>		  					</div> -					<div id="oa_config_publicservice" class="oa_config_block"> -						<h3><%=LanguageHelper.getGUIString("webpages.oaconfig.general.public.header", request) %></h3> -						 -						<s:if test="authUser.isAdmin()"> -							<s:select list="generalOA.targetList" -												key="webpages.oaconfig.general.target" -												labelposition="left" -												cssClass="selectfield" -												value="%{generalOA.target}" -												name="generalOA.target" -												onchange="HideAdminTarget();"> -							</s:select>						 -						</s:if> -						<s:else> -							<s:select list="generalOA.targetList" -												key="webpages.oaconfig.general.target" -												labelposition="left" -												cssClass="selectfield" -												value="%{generalOA.target}" -												name="generalOA.target"> -							</s:select> -						</s:else> -						 -						<s:textfield name="generalOA.target_subsector"  -							value="%{generalOA.target_subsector}"  -							labelposition="left" -							key="webpages.oaconfig.general.target.subsector" -							cssClass="selectfield"> -						</s:textfield> -						 -						 - 						<s:if test="authUser.isAdmin()"> - 							<s:checkbox -	 							name="generalOA.AdminTarget"  -								value="%{generalOA.AdminTarget}" -								cssClass="checkbox" - 								onclick="AdminTarget();" - 								labelposition="left" -								key="webpages.oaconfig.general.target.admin.checkbox" -								id="adminTarget"> - 							</s:checkbox> - 							 - 							<div id="admin_target_area"> -								<s:textfield name="generalOA.target_admin"  -									value="%{generalOA.target_admin}"  -									labelposition="left" -									key="webpages.oaconfig.general.target.admin" -									cssClass="textfield_short"> -								</s:textfield> -								<s:textfield name="generalOA.targetFriendlyName"  -									value="%{generalOA.targetFriendlyName}"  -									labelposition="left" -									key="webpages.oaconfig.general.target.friendlyname" -									cssClass="textfield_long"> -								</s:textfield> -							</div> - 						</s:if> - 						<s:else> - 							<s:if test="generalOA.target_admin neq null"> - 								<s:textfield name="generalOA.target_admin"  -									value="%{generalOA.target_admin}"  -									labelposition="left" -									key="webpages.oaconfig.general.target.admin.disabled" -									cssClass="textfield_short" -									disabled="true"> -								</s:textfield> +					<s:if test="!isOnlyBusinessService()"> +						<div id="oa_config_publicservice" class="oa_config_block"> +							<h3><%=LanguageHelper.getGUIString("webpages.oaconfig.general.public.header", request) %></h3> +							 +							<s:if test="authUser.isAdmin()"> +								<s:select list="generalOA.targetList" +													key="webpages.oaconfig.general.target" +													labelposition="left" +													cssClass="selectfield" +													value="%{generalOA.target}" +													name="generalOA.target" +													onchange="HideAdminTarget();"> +								</s:select>						  							</s:if> -<%-- 							<s:if test="generalOA.targetFriendlyName neq null"> -								<s:textfield name="generalOA.targetFriendlyName"  -									value="%{generalOA.targetFriendlyName}"  -									labelposition="left" -									key="webpages.oaconfig.general.target.friendlyname.disabled" -									cssClass="textfield_long"> -								</s:textfield> -							</s:if> --%> - 						</s:else> - - -					</div> +							<s:else> +								<s:select list="generalOA.targetList" +													key="webpages.oaconfig.general.target" +													labelposition="left" +													cssClass="selectfield" +													value="%{generalOA.target}" +													name="generalOA.target"> +								</s:select> +							</s:else> +							 +							<s:checkbox name="subTargetSet"  +								value="%{subTargetSet}" +								labelposition="left" +								key="webpages.oaconfig.general.target.subsector.checkbox" +								cssClass="checkbox" +								onclick="oaTargetSubSector();" +								id="OAisTargetSubSector"> +							</s:checkbox> +							 +							<s:textfield name="generalOA.target_subsector"  +								value="%{generalOA.target_subsector}"  +								labelposition="left" +								key="webpages.oaconfig.general.target.subsector" +								cssClass="selectfield" +								id="OAtarget_subsector"> +							</s:textfield> +							 +							 +	 						<s:if test="authUser.isAdmin()"> +	 							<s:checkbox +		 							name="generalOA.AdminTarget"  +									value="%{generalOA.AdminTarget}" +									cssClass="checkbox" +	 								onclick="AdminTarget();" +	 								labelposition="left" +									key="webpages.oaconfig.general.target.admin.checkbox" +									id="adminTarget"> +	 							</s:checkbox> +	 							 +	 							<div id="admin_target_area"> +									<s:textfield name="generalOA.target_admin"  +										value="%{generalOA.target_admin}"  +										labelposition="left" +										key="webpages.oaconfig.general.target.admin" +										cssClass="textfield_short"> +									</s:textfield> +									<s:textfield name="generalOA.targetFriendlyName"  +										value="%{generalOA.targetFriendlyName}"  +										labelposition="left" +										key="webpages.oaconfig.general.target.friendlyname" +										cssClass="textfield_long"> +									</s:textfield> +								</div> +	 						</s:if> +	 						<s:else> +	 							<s:if test="generalOA.target_admin neq null"> +	 								<s:textfield name="generalOA.target_admin"  +										value="%{generalOA.target_admin}"  +										labelposition="left" +										key="webpages.oaconfig.general.target.admin.disabled" +										cssClass="textfield_short" +										disabled="true"> +									</s:textfield> +								</s:if> +	<%-- 							<s:if test="generalOA.targetFriendlyName neq null"> +									<s:textfield name="generalOA.targetFriendlyName"  +										value="%{generalOA.targetFriendlyName}"  +										labelposition="left" +										key="webpages.oaconfig.general.target.friendlyname.disabled" +										cssClass="textfield_long"> +									</s:textfield> +								</s:if> --%> +	 						</s:else> +						</div> +					</s:if>  					<s:if test="authUser.isAdmin()">  						<div class="oa_config_block"> @@ -396,6 +394,27 @@  								key="webpages.oaconfig.general.aditional.authblocktext"  								cssClass="textfield_large">  							</s:textarea> +							 +							<s:textfield name="generalOA.bkuSelectionBackGroundColor"  +								value="%{generalOA.bkuSelectionBackGroundColor}"  +								labelposition="left" +								key="webpages.oaconfig.general.BKUSelection.backgroundcolor" +								cssClass="textfield_middle"> +							</s:textfield> +							 +							<s:checkbox name="generalOA.showMandateLoginButton"  +								value="%{generalOA.showMandateLoginButton}" +								labelposition="left" +								key="webpages.oaconfig.general.BKUSelection.isMandateLoginCheckboxVisible" +								cssClass="checkbox"> +							</s:checkbox> +						 +							<s:checkbox name="generalOA.onlyMandateAllowed"  +								value="%{generalOA.onlyMandateAllowed}" +								labelposition="left" +								key="webpages.oaconfig.general.BKUSelection.isOnlyMandateLoginAllowed" +								cssClass="checkbox"> +							</s:checkbox>  						</s:if>  					</div> | 
