aboutsummaryrefslogtreecommitdiff
path: root/id/ConfigWebTool/src/main/java/at/gv
diff options
context:
space:
mode:
authorThomas Lenz <tlenz@iaik.tugraz.at>2014-02-06 15:42:53 +0100
committerThomas Lenz <tlenz@iaik.tugraz.at>2014-02-06 15:42:53 +0100
commit1c567f6eb16fa10d3811fbaaf70c4ab04fb08077 (patch)
tree6b999ab47897622daddabfc9e4819bcc56ea00c9 /id/ConfigWebTool/src/main/java/at/gv
parentf9b31bdc4781d6eca20bc2d993f08f6a4eb462f2 (diff)
downloadmoa-id-spss-1c567f6eb16fa10d3811fbaaf70c4ab04fb08077.tar.gz
moa-id-spss-1c567f6eb16fa10d3811fbaaf70c4ab04fb08077.tar.bz2
moa-id-spss-1c567f6eb16fa10d3811fbaaf70c4ab04fb08077.zip
BRZ:
-add SAML1 SourceID parameter in moa-id general Bugfix: -SSO target had an error in case of business-service -OA with business-service whichout single sign-on produce an error
Diffstat (limited to 'id/ConfigWebTool/src/main/java/at/gv')
-rw-r--r--id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/Constants.java16
-rw-r--r--id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/GeneralMOAIDConfig.java53
-rw-r--r--id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditGeneralConfigAction.java66
-rw-r--r--id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditOAAction.java1
-rw-r--r--id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/moaconfig/MOAConfigValidator.java43
5 files changed, 133 insertions, 46 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 e309eaadd..7b02883bb 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
@@ -22,6 +22,12 @@
*******************************************************************************/
package at.gv.egovernment.moa.id.configuration;
+import java.util.Collection;
+import java.util.Hashtable;
+import java.util.Map;
+
+import edu.emory.mathcs.backport.java.util.Collections;
+
public class Constants {
public static final String FILEPREFIX = "file:";
@@ -78,4 +84,14 @@ public class Constants {
public static final String IDENIFICATIONTYPE_BASEID_ZVR = IDENIFICATIONTYPE_BASEID + "X" + IDENIFICATIONTYPE_ZVR;
public static final String PREFIX_WPBK = "urn:publicid:gv.at:wbpk+";
+
+ public static final Map<String, String> BUSINESSSERVICENAMES;
+ static {
+ Hashtable<String, String> tmp = new Hashtable<String, String>();
+ tmp.put(IDENIFICATIONTYPE_FN, "Firmenbuchnummer");
+ tmp.put(IDENIFICATIONTYPE_ZVR, "Vereinsnummer");
+ tmp.put(IDENIFICATIONTYPE_ERSB, "ERsB Kennzahl");
+
+ BUSINESSSERVICENAMES = Collections.unmodifiableMap(tmp);
+ }
}
diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/GeneralMOAIDConfig.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/GeneralMOAIDConfig.java
index c6b9b984a..d81d03780 100644
--- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/GeneralMOAIDConfig.java
+++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/GeneralMOAIDConfig.java
@@ -57,6 +57,7 @@ import at.gv.egovernment.moa.id.commons.db.dao.config.VerifyAuthBlock;
import at.gv.egovernment.moa.id.commons.db.dao.config.VerifyIdentityLink;
import at.gv.egovernment.moa.id.configuration.Constants;
import at.gv.egovernment.moa.id.configuration.data.pvp2.ContactForm;
+import at.gv.egovernment.moa.util.MiscUtil;
public class GeneralMOAIDConfig {
@@ -90,6 +91,8 @@ public class GeneralMOAIDConfig {
private boolean legacy_saml1 = false;
private boolean legacy_pvp2 = false;
+ private String saml1SourceID = null;
+
private String pvp2PublicUrlPrefix = null;
private String pvp2IssuerName = null;
private String pvp2OrgName = null;
@@ -214,6 +217,11 @@ public class GeneralMOAIDConfig {
SAML1 saml1 = protocols.getSAML1();
if (saml1 != null) {
protocolActiveSAML1 = saml1.isIsActive();
+ saml1SourceID = saml1.getSourceID();
+
+ //TODO: could removed in a later version
+ if (MiscUtil.isEmpty(saml1SourceID) && MiscUtil.isNotEmpty(alternativeSourceID))
+ saml1SourceID = alternativeSourceID;
}
@@ -263,13 +271,21 @@ public class GeneralMOAIDConfig {
if (sso != null) {
ssoFriendlyName = sso.getFriendlyName();
- IdentificationNumber idl = sso.getIdentificationNumber();
- if (idl != null)
- ssoIdentificationNumber = idl.getValue();
+// IdentificationNumber idl = sso.getIdentificationNumber();
+// if (idl != null)
+// ssoIdentificationNumber = idl.getValue();
ssoPublicUrl = sso.getPublicURL();
ssoSpecialText = sso.getSpecialText();
- ssoTarget = sso.getTarget();
+
+ if (MiscUtil.isNotEmpty(sso.getTarget()) &&
+ sso.getTarget().startsWith(Constants.PREFIX_WPBK)) {
+ ssoTarget = sso.getTarget().substring(Constants.PREFIX_WPBK.length()).
+ replace("+", "");
+
+ } else
+ ssoTarget = sso.getTarget();
+
}
}
@@ -320,20 +336,6 @@ public class GeneralMOAIDConfig {
}
/**
- * @return the alternativeSourceID
- */
- public String getAlternativeSourceID() {
- return alternativeSourceID;
- }
-
- /**
- * @param alternativeSourceID the alternativeSourceID to set
- */
- public void setAlternativeSourceID(String alternativeSourceID) {
- this.alternativeSourceID = alternativeSourceID;
- }
-
- /**
* @return the certStoreDirectory
*/
public String getCertStoreDirectory() {
@@ -913,6 +915,21 @@ public class GeneralMOAIDConfig {
public void setProtocolActiveOAuth(boolean protocolActiveOAuth) {
this.protocolActiveOAuth = protocolActiveOAuth;
}
+
+ /**
+ * @return the saml1SourceID
+ */
+ public String getSaml1SourceID() {
+ return saml1SourceID;
+ }
+
+ /**
+ * @param saml1SourceID the saml1SourceID to set
+ */
+ public void setSaml1SourceID(String saml1SourceID) {
+ this.saml1SourceID = saml1SourceID;
+ }
+
diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditGeneralConfigAction.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditGeneralConfigAction.java
index 3c8c0e18d..67750e765 100644
--- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditGeneralConfigAction.java
+++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditGeneralConfigAction.java
@@ -74,6 +74,7 @@ import at.gv.egovernment.moa.id.configuration.auth.AuthenticatedUser;
import at.gv.egovernment.moa.id.configuration.data.GeneralMOAIDConfig;
import at.gv.egovernment.moa.id.configuration.data.GeneralStorkConfig;
import at.gv.egovernment.moa.id.configuration.helper.LanguageHelper;
+import at.gv.egovernment.moa.id.configuration.validation.ValidationHelper;
import at.gv.egovernment.moa.id.configuration.validation.moaconfig.MOAConfigValidator;
import at.gv.egovernment.moa.id.configuration.validation.moaconfig.StorkConfigValidator;
import at.gv.egovernment.moa.id.util.Random;
@@ -229,12 +230,12 @@ public class EditGeneralConfigAction extends ActionSupport
if (oldauth != null)
oldauthgeneral = oldauth.getGeneralConfiguration();
- if (MiscUtil.isNotEmpty(moaconfig.getAlternativeSourceID()))
- dbauthgeneral.setAlternativeSourceID(moaconfig.getAlternativeSourceID());
- else {
- if (oldauthgeneral != null)
- dbauthgeneral.setAlternativeSourceID(oldauthgeneral.getAlternativeSourceID());
- }
+// if (MiscUtil.isNotEmpty(moaconfig.getAlternativeSourceID()))
+// dbauthgeneral.setAlternativeSourceID(moaconfig.getAlternativeSourceID());
+// else {
+// if (oldauthgeneral != null)
+// dbauthgeneral.setAlternativeSourceID(oldauthgeneral.getAlternativeSourceID());
+// }
if (MiscUtil.isNotEmpty(moaconfig.getCertStoreDirectory()))
dbauthgeneral.setCertStoreDirectory(moaconfig.getCertStoreDirectory());
@@ -287,6 +288,15 @@ public class EditGeneralConfigAction extends ActionSupport
}
saml1.setIsActive(moaconfig.isProtocolActiveSAML1());
+ if (MiscUtil.isNotEmpty(moaconfig.getSaml1SourceID())) {
+ saml1.setSourceID(moaconfig.getSaml1SourceID());
+
+ } else {
+ if (MiscUtil.isNotEmpty(saml1.getSourceID()))
+ saml1.setSourceID(moaconfig.getSaml1SourceID());
+
+ }
+
OAuth oauth= dbprotocols.getOAuth();
if (oauth == null) {
oauth = new OAuth();
@@ -356,17 +366,43 @@ public class EditGeneralConfigAction extends ActionSupport
if (MiscUtil.isNotEmpty(moaconfig.getSsoPublicUrl()))
dbsso.setPublicURL(moaconfig.getSsoPublicUrl());
- if (MiscUtil.isNotEmpty(moaconfig.getSsoTarget()))
- dbsso.setTarget(moaconfig.getSsoTarget());
-
- if (MiscUtil.isNotEmpty(moaconfig.getSsoIdentificationNumber())) {
- IdentificationNumber ssoid = dbsso.getIdentificationNumber();
- if (ssoid == null) {
- ssoid = new IdentificationNumber();
- dbsso.setIdentificationNumber(ssoid);
+ if (MiscUtil.isNotEmpty(moaconfig.getSsoTarget())) {
+
+ if (!ValidationHelper.isValidAdminTarget(moaconfig.getSsoTarget())) {
+ String num = moaconfig.getSsoTarget().replaceAll(" ", "");
+ String pre = null;
+ if (num.startsWith(Constants.IDENIFICATIONTYPE_FN)) {
+ num = num.substring(Constants.IDENIFICATIONTYPE_FN.length());
+
+ num = at.gv.egovernment.moa.util.StringUtils.deleteLeadingZeros(num);
+ pre = Constants.IDENIFICATIONTYPE_FN;
+ }
+
+ if (num.startsWith(Constants.IDENIFICATIONTYPE_ZVR)) {
+ num = num.substring(Constants.IDENIFICATIONTYPE_ZVR.length());
+ pre = Constants.IDENIFICATIONTYPE_ZVR;
+ }
+
+ if (num.startsWith(Constants.IDENIFICATIONTYPE_ERSB)){
+ num = num.substring(Constants.IDENIFICATIONTYPE_ERSB.length());
+ pre = Constants.IDENIFICATIONTYPE_ERSB;
+ }
+
+ dbsso.setTarget(Constants.PREFIX_WPBK + pre + "+" + num);
+
+ } else {
+ dbsso.setTarget(moaconfig.getSsoTarget());
+
}
- ssoid.setValue(moaconfig.getSsoIdentificationNumber());
}
+// if (MiscUtil.isNotEmpty(moaconfig.getSsoIdentificationNumber())) {
+// IdentificationNumber ssoid = dbsso.getIdentificationNumber();
+// if (ssoid == null) {
+// ssoid = new IdentificationNumber();
+// dbsso.setIdentificationNumber(ssoid);
+// }
+// ssoid.setValue(moaconfig.getSsoIdentificationNumber());
+// }
DefaultBKUs dbbkus = dbconfig.getDefaultBKUs();
if (dbbkus == null) {
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 775443689..25c3f24b9 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
@@ -763,6 +763,7 @@ public class EditOAAction extends ActionSupport implements ServletRequestAware,
IdentificationNumber idnumber = new IdentificationNumber();
idnumber.setValue(Constants.PREFIX_WPBK + generalOA.getIdentificationType() + "+" + num);
+ idnumber.setType(Constants.BUSINESSSERVICENAMES.get(generalOA.getIdentificationType()));
authoa.setIdentificationNumber(idnumber);
diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/moaconfig/MOAConfigValidator.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/moaconfig/MOAConfigValidator.java
index 1ea51652a..d7d97e5d4 100644
--- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/moaconfig/MOAConfigValidator.java
+++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/moaconfig/MOAConfigValidator.java
@@ -32,10 +32,12 @@ import java.util.Map;
import org.apache.log4j.Logger;
+import at.gv.egovernment.moa.id.configuration.Constants;
import at.gv.egovernment.moa.id.configuration.data.GeneralMOAIDConfig;
import at.gv.egovernment.moa.id.configuration.data.pvp2.ContactForm;
import at.gv.egovernment.moa.id.configuration.helper.LanguageHelper;
import at.gv.egovernment.moa.id.configuration.helper.StringHelper;
+import at.gv.egovernment.moa.id.configuration.validation.CompanyNumberValidator;
import at.gv.egovernment.moa.id.configuration.validation.ValidationHelper;
import at.gv.egovernment.moa.util.Base64Utils;
import at.gv.egovernment.moa.util.MiscUtil;
@@ -51,11 +53,11 @@ public class MOAConfigValidator {
log.debug("Validate general MOA configuration");
- String check = form.getAlternativeSourceID();
+ String check = form.getSaml1SourceID();
if (MiscUtil.isNotEmpty(check)) {
if (ValidationHelper.containsPotentialCSSCharacter(check, false)) {
- log.warn("AlternativeSourceID contains potentail XSS characters: " + check);
- errors.add(LanguageHelper.getErrorString("validation.general.AlternativeSourceID",
+ log.warn("SAML1 SourceID contains potentail XSS characters: " + check);
+ errors.add(LanguageHelper.getErrorString("validation.general.SAML1SourceID",
new Object[] {ValidationHelper.getPotentialCSSCharacter(false)} ));
}
}
@@ -282,14 +284,14 @@ public class MOAConfigValidator {
}
}
- check = form.getSsoIdentificationNumber();
- if (MiscUtil.isNotEmpty(check)) {
- if (ValidationHelper.containsPotentialCSSCharacter(check, false)) {
- log.info("SSO IdentificationNumber is not valid: " + check);
- errors.add(LanguageHelper.getErrorString("validation.general.sso.identificationnumber.valid",
- new Object[] {ValidationHelper.getPotentialCSSCharacter(false)} ));
- }
- }
+// check = form.getSsoIdentificationNumber();
+// if (MiscUtil.isNotEmpty(check)) {
+// if (ValidationHelper.containsPotentialCSSCharacter(check, false)) {
+// log.info("SSO IdentificationNumber is not valid: " + check);
+// errors.add(LanguageHelper.getErrorString("validation.general.sso.identificationnumber.valid",
+// new Object[] {ValidationHelper.getPotentialCSSCharacter(false)} ));
+// }
+// }
check = form.getSsoPublicUrl();
if (MiscUtil.isNotEmpty(check)) {
@@ -315,8 +317,23 @@ public class MOAConfigValidator {
} else {
if (!ValidationHelper.isValidAdminTarget(check)) {
- log.info("Not valid SSO Target");
- errors.add(LanguageHelper.getErrorString("validation.general.sso.target.valid"));
+
+ if (ValidationHelper.containsPotentialCSSCharacter(check, false)) {
+ log.warn("IdentificationNumber contains potentail XSS characters: " + check);
+ errors.add(LanguageHelper.getErrorString("validation.general.sso.target.valid",
+ new Object[] {ValidationHelper.getPotentialCSSCharacter(false)} ));
+ }
+
+ String num = check.replaceAll(" ", "");
+
+ if ( !(num.startsWith(Constants.IDENIFICATIONTYPE_FN) ||
+ num.startsWith(Constants.IDENIFICATIONTYPE_ZVR) ||
+ num.startsWith(Constants.IDENIFICATIONTYPE_ERSB) ) ) {
+
+ log.info("Not valid SSO Target");
+ errors.add(LanguageHelper.getErrorString("validation.general.sso.target.valid"));
+ }
+
}
}